事件循环上下文中微任务和宏任务之间的区别

我刚读完Promises / A+规范,偶然发现了术语microtask和macrotask:

我以前从未听说过这些术语,现在我很好奇可能会有什么不同?

鉴于此WHATWG规范,我知道理论上我应该能够自己提取差异。但是我确信,专家的简短解释也可以使其他人受益。

回答:

事件循环的 方法是从 处理

任务在WHATWG规范中,该队列简称为 任务队列 )。此宏任务完成后,将处理所有可用的

任务,即在相同的复现周期内。在处理这些微任务时,它们可以将更多的微任务排队,这些任务将一一运行,直到用完微任务队列。

回答:

如果 递归地排队其他微任务,则可能需要很长时间才能处理下一个宏任务。这意味着,您最终可能会遇到UI阻塞或应用程序中某些I / O空闲的情况。

然而,至少有关的Node.js的process.nextTick函数(队列

),存在通过process.maxTickDepth的手段对这种阻挡一个内置的保护。此值的默认设置为1000,在达到此限制后将减少对

进一步处理,从而允许处理下一个 )

回答:

基本上,当您需要以同步方式异步执行 时(例如,您说要 在最近期执行此(微)任务),请使用微任务 。否则,请坚持 。

以上是 事件循环上下文中微任务和宏任务之间的区别 的全部内容, 来源链接: utcz.com/qa/416839.html

回到顶部