请问以下JS代码在Node环境下的输出顺序是?

请问以下JS代码在Node环境下的输出顺序是?

Promise.resolve() .then(() => { console.log('p1'); }) .then(() => { console.log('p2'); }) process.nextTick(() => { console.log('n1'); process.nextTick(() => { console.log('n2'); }) })

n1、n2、p1、p2

注意虽然两者都属于微任务,但是只要它不是process.nextTick派发的,全部都要排队在process.nextTick后面执行。

Node 中的“微任务(microtasks)其实是一个统称,包含了两部分:

process.nextTick() 注册的回调 (nextTick task queue)
promise.then() 注册的回调 (promise task queue)

Node 在执行微任务时, 会优先执行 nextTick task queue 中的任务,执行完之后会接着执行 promise task queue 中的任务。
所以如果 process.nextTick 的回调与 promise.then 的回调都处于主线程或事件循环中的同一阶段, process.nextTick 的回调要优先于 promise.then 的回调执行。

https://www.cnblogs.com/forcheng/p/12723854.html


__EOF__

本文作者龙陌
本文链接https://www.cnblogs.com/longmo666/p/17824445.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   龙陌  阅读(23)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示