JavaScript 中的调用堆栈优先级

Call Stack Priority in JavaScript

如果'A'进入回调队列,'B'和'C'都还需要执行,A运行会不会在B之后(假设超时完成) ), 还是先 C 运行?

我假设它会是 A?

当异步操作结束时,回调进入队列并在那里等待,直到调用堆栈为空。之后,队列中的第一个回调移动到调用堆栈。所以如果调用栈中有B和C,A是回调函数在队列中等待,那么A会在B和C之后运行

这是一个概念证明。

setTimeout(()=> console.log('C'), 500);
setTimeout(()=> console.log('B'), 500);


for (let i=0; i <= 99999; i++)
  for (let j=0; j <= 99999; j++)
    if (i === 9999 && j === 9999)    //< Note that the loop still continues after this
      setTimeout(()=> console.log('A'), 0); //Note the zero

这里有一份指南:

https://blog.sessionstack.com/how-javascript-works-event-loop-and-the-rise-of-async-programming-5-ways-to-better-coding-with-2f077c4438b5