最近,我遇到了一些代码,这些代码使我对Node.js引擎的工作方式感到疑惑。特别是关于事件循环,for循环和异步处理。例如:
const x = 100000000; // or some stupendously large number
for (let i = 0; i < x; i++) {
asyncCall(callback);
}
const callback = () => {
console.log("done one");
}
假设asyncCall花费1毫秒到100毫秒的时间。是否有可能在for循环完成之前调用console.log(“ done one”)?
要尝试找到自己的答案,我已阅读以下文章:https://blog.sessionstack.com/how-javascript-works-event-loop-and-the-rise-of-async-programming-5-ways-to-better-coding-with-2f077c4438b5。但是我不确定在for循环的中间是否有调用堆栈为空的情况,以便事件循环将回调置于asyncCall调用之间?