异步循环Node.js

时间:2019-10-04 12:04:13

标签: node.js

我正在尝试使循环在console.log之前运行,但首先运行的是console.log

for(let i = 0; i < 10; i++){
    setTimeout(function(){ 
        console.log("hello " + i); 
    }, 500);
}

console.log("Bye bye");

1 个答案:

答案 0 :(得分:1)

由于javascript中的大多数函数都是异步的(最著名的是PromisessetTimeoutsetInterval),以避免阻塞流执行,因此循环不会等待{{1 }}函数以继续执行。

您可以通过使用setTimeout函数来执行类似的操作,该函数将在继续执行之前等待解决承诺,请谨慎使用the setTimeout in loop(不建议这样做)

如果要实现这一目标,可以执行以下操作:

async/await