粘贴到控制台查看输出顺序
map 不会等待 Promise.resolve完成 再执行下一轮循环,而 for 会等待
let num = 0;
await Promise.all(
[1, 2, 3].map(async item => {
console.log('进入');
num += await new Promise((resolve, reject) => {
setTimeout(() => {
console.log(item);
resolve(item)
}, 1000);
})
console.log('出去');
})
);
console.log('来了', num);
let num = 0;
for (let item of [1, 2, 3]) {
console.log('进入');
num += await new Promise((resolve, reject) => {
setTimeout(() => {
console.log(item);
resolve(item)
}, 1000);
})
console.log('出去');
}
console.log('来了', num);