我知道事件循环及其操作方式。最近我阅读以很好地理解承诺,并了解到ECS6
和较低规格之间的区别之一。javascript 引擎现在对如何在事件循环队列上调度任务有影响。 现在有一个新的概念,即job queue
据说它存在于事件循环迭代的末尾。有人可以清楚地向我解释job queue
是什么,它是如何运作的以及它如何帮助调度事件循环队列上的任务。我似乎没有从任何地方得到明确的驱逐。
"出现在事件循环队列迭代结束时"的"作业队列"通常称为"微任务队列"。
添加到微队列的作业只是在事件循环的当前标注完成后连续执行,事件循环管理器不会对下一步运行的内容做出任何决定,直到微队列为空。
由承诺结算导致的承诺反应作业被放置在微队列中。因此,它们在事件队列中的任何活动标注完成后立即以最高优先级运行。
ES6 规范只是简单地指出 Promise 作业进入"PromiseJob"队列,没有指定任何特定 JavaScript 应用程序(如浏览器(的实现细节,也没有提到"微任务"这个词。
一个相关的问题"事件循环队列"和"作业队列">有什么区别?,包含有关"作业队列"是什么的正式定义的其他定义和链接。