我正在尝试使循环在console.log
之前运行,但首先运行的是console.log
for(let i = 0; i < 10; i++){
setTimeout(function(){
console.log("hello " + i);
}, 500);
}
console.log("Bye bye");
答案 0 :(得分:1)
由于javascript中的大多数函数都是异步的(最著名的是Promises
,setTimeout
和setInterval
),以避免阻塞流执行,因此循环不会等待{{1 }}函数以继续执行。
您可以通过使用setTimeout
函数来执行类似的操作,该函数将在继续执行之前等待解决承诺,请谨慎使用the setTimeout in loop(不建议这样做)
如果要实现这一目标,可以执行以下操作:
async/await