JavaScript事件循环:队列与消息队列与事件队列

时间:2018-04-09 09:05:45

标签: javascript event-loop

阅读了很多JavaScript事件循环教程,我看到不同的术语来识别队列存储消息,当调用堆栈为空时,它们准备好由事件循环获取:

  • 队列
  • 消息队列
  • 事件队列

我找不到标准术语来识别这个。

甚至MDN似乎在the Event Loop page上混淆了,因为它首先称之为队列,然后说 Message Queue 但是在标签中我看到事件队列

循环的这一部分是在某个地方详细定义的,还是只是一个没有“固定”名称的实现细节?

1 个答案:

答案 0 :(得分:4)

好问题,我也是使用适当术语的倡导者。

队列,消息队列和事件队列指的是相同的构造(事件循环队列)。此构造具有在事件循环中触发的回调。

有趣的是,作业队列和事件循环队列有两个不同的队列。作业队列专门用于承诺。作业队列的优先级高于事件循环队列的,因此如果两个队列中都有可用的回调,则作业队列中的回调将首先放在堆栈中。

希望这能回答你的问题。