在执行第一个 await new Promise
之后,For 循环结束,没有任何代码。如果我理解正确,每次迭代应该暂停 2 秒,然后 Promise
被解析,console.log
输出指定的字符串,然后迭代结束。我应该如何重写代码以使其按预期工作?
'use strict';
(async function () {
for (let i = 0; i < 5; i++) {
await new Promise(resolve => { setTimeout(() => { resolve }, 2000) });
console.log('end of loop');
}
})();
最佳答案
您需要在 setInterval 回调中调用 resolve 函数。
await new Promise(resolve => { setTimeout(() => { resolve() }, 2000) });
关于javascript - Node.js:异步函数似乎不等待 for 循环中 Promise 的解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55121529/