相关疑难解决方法(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万
查看次数

setTimeout和setImmediate之间的优先级

我在节点文档中读到了这个:

setImmediate(callback,[arg],[...])

在I/O事件回调之后以及之前setTimeout和之后安排"立即"执行回调setInterval

但是,我看到相反的情况. setTimeout之前执行setImmediate.是否有人对此行为进行了解释,或者有关于节点事件循环的任何文档?

谢谢 :)

代码:

var index = 0;

function test(name) {
    console.log((index++) + " " + name);
}

setImmediate(function() {
    test("setImmediate");
})

setTimeout(function() {
    test("setTimeout");
}, 0);

process.nextTick(function() {
    test("nextTick");
})

test("directCall");
Run Code Online (Sandbox Code Playgroud)

输出:

0 directCall
1 nextTick
2 setTimeout
3 setImmediate
Run Code Online (Sandbox Code Playgroud)

javascript node.js

9
推荐指数
1
解决办法
1125
查看次数

标签 统计

javascript ×2

node.js ×2

event-loop ×1

promise ×1