如何在循环中使用等待/异步"/>
如何在循环中使用等待/异步
为什么代码以这种方式打印?
等待不能在循环下使用?
>>>>> START
1
预期结果为'>>>>> START 1 2 3 >>>>> END'
let arr = [1, 2, 3]
async function print() {
for (let n of arr) {
await new Promise(
resolve => {
setTimeout(() => {
console.log(n);
resolve;
}, 1000)
}
);
}
}
async function main() {
console.log(">>>>> START");
await print();
console.log(">>>>> END");
}
main()
回答如下:简单错字,您未调用resolve
函数。您需要实际调用它,否则您的承诺将永远无法解决,您的代码将永远不会继续:
更多推荐
如何在循环中使用等待/异步
发布评论