Javascript暂停循环直到函数完成

Javascript暂停循环直到函数完成,javascript,Javascript,我试图循环一个函数,但我需要暂停循环,执行函数,然后继续循环。完成此功能大约需要1到5分钟。然后我想取消暂停循环,并将函数重做20次 到目前为止,我所尝试的: for(i = 0; i < 20; i++) { //Some function here } (i=0;i

我试图循环一个函数,但我需要暂停循环,执行函数,然后继续循环。完成此功能大约需要1到5分钟。然后我想取消暂停循环,并将函数重做20次

到目前为止,我所尝试的:

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
  }

}