定时器和promise_Nodejs 事件循环(第三部分)- Promise,nextTicks,immediate

7dd2edef77d083a86064be2a990910bb.png

原文链接

文章系列路线图

  • NodeJS 事件循环(第一部分)- 事件循环机制概述
  • NodeJS 事件循环(第二部分)- Timers,Immediates,nextTick
  • Nodejs 事件循环(第三部分)- Promise,nextTicks,immediate
  • NodeJS 事件循环(第四部分)- 处理 IO
  • NodeJS 事件循环(第五部分)- 最佳实践

欢迎回到事件循环系列文章!在这个系列的第 1 部分,我们讨论了 Node.js 事件循环的整体情况。在之后的第 2 部分,我们在事件循环的上下文中讨论了计时器(timers)和immediates,以及每个队列是如何调度的。接下来在这篇文章中,让我们看下事件循环如何调度 完成的/失败的 promise(包括原生 JS promise,Q promises 和 Bluebird Promise)和下一轮回调(next Tick callback)。

原生 Promises

在原生 promises 的上下文中,一个 promise 的回调被看成一个微任务和在微任务队列中入队,在 next tick 队列后面处理。

73e8309911b6bfe60215d479b43ea5eb.png

考虑下面的示例。

Promise.resolve().then(() => console.log('promise1 resolved'));
Promise.resolve().then(() => console.log('promise2 resolved'));
Promise.resolve().then(() => {
    
    console.log('promise3 resolved');
    process.nextTick(() => console.log('next tick inside promise resolve handler'));
});
Promise.resolve().then(() => console.log('promise4 resolved'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值