小编Byt*_*yte的帖子

process.nextTick 在 Promise.resolve().then 之前?

下面的代码:

\n
process.nextTick( () => console.log("nextTick 1") );\nprocess.nextTick( () => { \n    console.log("nextTick 2"); \n    Promise.resolve("Resolved promise inside nextTick").then(console.log); \n})\n\nPromise.resolve("Resolved promise 1").then(console.log);\nPromise.reject("Rejected promise 2").catch(console.log);\n\nsetImmediate( () => {\n    console.log("setImmediate");\n    Promise.resolve("Resolved promise inside setImmediate").then(console.log);\n    Promise.reject("Rejected promise inside setImmediate").catch(console.log);\n    process.nextTick( () => console.log("nextTick 3") );\n})\n
Run Code Online (Sandbox Code Playgroud)\n

在节点 v14.17.0 中输出此内容

\n
Resolved promise 1\nRejected promise 2\nnextTick 1\nnextTick 2\nResolved promise inside nextTick    \nsetImmediate\nnextTick 3\nResolved promise inside setImmediate\nRejected promise inside setImmediate\n
Run Code Online (Sandbox Code Playgroud)\n

为什么前两个 Promise.then/catch 回调在 process.nextTick 回调之前调用?\xc2\xb4t process.nextTick 回调应该像 setImmediate 部分一样先于 Promise 回调吗?

\n

javascript asynchronous event-loop node.js

5
推荐指数
1
解决办法
989
查看次数

标签 统计

asynchronous ×1

event-loop ×1

javascript ×1

node.js ×1