下面的代码:
\nprocess.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})\nRun Code Online (Sandbox Code Playgroud)\n在节点 v14.17.0 中输出此内容
\nResolved promise 1\nRejected promise 2\nnextTick 1\nnextTick 2\nResolved promise inside nextTick \nsetImmediate\nnextTick 3\nResolved promise inside setImmediate\nRejected promise inside setImmediate\nRun Code Online (Sandbox Code Playgroud)\n为什么前两个 Promise.then/catch 回调在 process.nextTick 回调之前调用?\xc2\xb4t process.nextTick 回调应该像 setImmediate 部分一样先于 Promise 回调吗?
\n