验证链式Promise执行流程

我们知道Promise.then(callback)callback调用的时间点为Promise状态变为resolved

new Promise((resolve, reject) => {
  do something
  ...
  resolve(value)
}).then((res) => {
  do other things
  ...
}).then(callback)

如上,我想要验证第二个thencallback的调用是在第一个then中的回调执行完之后,也就是验证第一个then返回的Promise的resolve时间点是在它执行完回调之后

代码如下

Promise.resolve().then(() => {
  for (let i = 1; i < 100; i++) console.log(1)
}).then(() => {
  console.log(2)
})

// expect: 
// 1(99)
// 2

其实,当我们开始思考语言机制的时候,更好的做法是看 源码

image.png

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Promise 对象 Promise 的含义 Promise 是异步编程的一种解决方案,比传统的解决方案——回调函...
    neromous阅读 8,841评论 1 56
  • 你不知道JS:异步 第三章:Promises 在第二章,我们指出了采用回调来表达异步和管理并发时的两种主要不足:缺...
    purple_force阅读 2,261评论 0 4
  • 原文地址:http://es6.ruanyifeng.com/#docs/promise Promise 的含义 ...
    AI云栈阅读 980评论 0 7
  • 弄懂js异步 讲异步之前,我们必须掌握一个基础知识-event-loop。 我们知道JavaScript的一大特点...
    DCbryant阅读 2,889评论 0 5
  • 高中的时候,物理老师反复教导和强调一定要掌握能量守恒定律。他说这将在高考中占很大的比重,因为这是一个永远流行的知识...
    阿超有话说阅读 898评论 0 1

友情链接更多精彩内容