相关疑难解决方法(0)

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

我刚刚读完了Promises/A +规范并偶然发现了微任务和macrotask这两个术语:请参阅http://promisesaplus.com/#notes

我以前从未听说过这些术语,现在我很好奇它的区别是什么?

我已经尝试在网上找到一些信息,但我发现的所有内容都来自w3.org档案馆(这并不能解释我与众不同之处):http://lists.w3.org/Archives /Public/public-nextweb/2013Jul/0018.html

另外,我发现了一个名为"macrotask"的npm模块:https://www.npmjs.org/package/macrotask 同样,没有明确区别的是什么.

我所知道的是,它与事件循环有关,如https://html.spec.whatwg.org/multipage/webappapis.html#task-queuehttps://html.spec.whatwg中所述. .ORG /多页/ webappapis.html#执行-A-microtask检查点

根据WHATWG规范,我知道理论上我应该能够自己提取差异.但我确信其他人也可以从专家的简短解释中受益.

javascript event-loop node.js promise

115
推荐指数
5
解决办法
3万
查看次数

在 Nodejs 事件循环的哪个阶段解析 Promise 的回调被执行?

根据这个答案

“重要的是要考虑到 Promise 中的 then/catch 回调是微任务,并将在 nextTick 任务之后执行”

Nodejs 文档提到 nextTickQueue 将在当前操作完成后处理,无论事件循环的当前阶段如何。这是否意味着已解决的承诺回调既不会在轮询阶段执行,也不会在挂起的回调阶段执行?

此外,该视频提到有一个queueMicroTask 队列,该队列在事件循环的当前阶段之后进行处理。所以我现在明白的是:

已解决的 Promise 回调将添加到queueMicroTask中,该回调将在nextTickQueue(回调传递给process.nextTick)之后进行处理,无论事件循环的当前阶段是什么,都会在nextTickQueue之后进行处理。

那是对的吗?如果不对请纠正我,我真的很困惑。

javascript event-loop node.js

2
推荐指数
1
解决办法
2189
查看次数

标签 统计

event-loop ×2

javascript ×2

node.js ×2

promise ×1