我有一个遍历函数的for循环,我希望该循环等待直到函数完成才能到达下一个函数。我该怎么办?
middlewares = []
for (let i in middlewares) {
middlewares[i]()
}
答案 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。