Javascript暂停循环直到函数完成
我试图循环一个函数,但我需要暂停循环,执行函数,然后继续循环。完成此功能大约需要1到5分钟。然后我想取消暂停循环,并将函数重做20次 到目前为止,我所尝试的:Javascript暂停循环直到函数完成,javascript,Javascript,我试图循环一个函数,但我需要暂停循环,执行函数,然后继续循环。完成此功能大约需要1到5分钟。然后我想取消暂停循环,并将函数重做20次 到目前为止,我所尝试的: for(i = 0; i < 20; i++) { //Some function here } (i=0;i
for(i = 0; i < 20; i++) {
//Some function here
}
(i=0;i<20;i++)的{
//这里有些功能
}
do{
变量i=0
//这里有些功能
我++
}而(i<20)
如果您的函数是异步的,您可以定义类似这样的循环,以等待流程完成。对于同步函数,您无需执行任何操作。循环将自动等待,直到完成
async function doAll()
{
for(i = 0; i < 20; i++) {
await heavyDutyFn()//this function should return a promise always
}
}
异步函数doAll()
{
对于(i=0;i<20;i++){
wait heavyDutyFn()//此函数应始终返回一个承诺
}
}
除非您的函数是异步的,否则情况总是这样。如果您使用异步函数,则必须使用承诺并将它们链接在一起。这取决于您在循环中使用的函数类型。如果它是同步的,循环在完成之前不会迭代。如果它是异步的,您需要等待它等待,因为某些原因它不工作。我的heavydutyfn()也是异步的。我应该删除它吗?这只是一个描述你的情况的例子。您应该首先学习创建承诺,它基本上用于i/o操作,类似于:doFunc();异步函数rFunc(){//function here}异步函数doFunc(){for(i=0;i
async function doAll()
{
for(i = 0; i < 20; i++) {
await heavyDutyFn()//this function should return a promise always
}
}