如何等待函数完成for js循环?

时间:2019-08-23 17:17:21

标签: javascript for-loop

我有一个遍历函数的for循环,我希望该循环等待直到函数完成才能到达下一个函数。我该怎么办?

middlewares = []

for (let i in middlewares) {
    middlewares[i]()
}

3 个答案:

答案 0 :(得分:3)

如果中间件函数在异步时返回promise,则以下解决方案将起作用

async function loop(middlewares) {
   for (let fn of middlewares) {
     await fn();
   }
}

loop(middlewares)
  .then(() => console.log("finished");

答案 1 :(得分:1)

您不能这样做,因为for循环是同步的。我建议为此使用async

答案 2 :(得分:0)

您可以使middlewares函数成为异步函数。这样可以更轻松地等到功能完成后再移至下一个功能。制作异步功能很容易:async function(...) {...}。了解它们here