function log(msg, time) {
return new Promise((resolve) => {
setTimeout(() => {
console.log(msg);
resolve();
}, time);
});
} (async () => {
for (let i = 0; i < 5; i++) {
await log(i, 1000);
}
})(); 第二段代码:(async () => {
[ 1, 2, 3, 4 ].forEach(async (i) => {
await log(i, 1000);
});
})(); 第三段代码:(async () => {
for (const i of [ 1, 2, 3, 4 ]) {
await log(i, 1000);
}
})(); 三段代码结果相同,都是每隔一秒输出1,2,3,4,耗时4秒
三段代码结果相同,都是一秒之后立即输出 1,2,3,4,耗时1秒