有关事件循环的问题

来源:8-20 手写 Promise-then 的链式调用

慕仰5120631

2022-08-28

//实例
const p1 = new MyPromise((resolve, reject) => {

    reject('错误啦')
})

const p11 = p1.then((data) => {

    return data + 1
})


const p12 = p11.then(data => {
    return data + 2
})
console.log(p12)
const p13 = p12.catch(err => {
    console.error(err)
})
console.log(p13)

输出结果是p12,错误信息,p13。
console.log(p13)是同步代碼,而console.error(err)是微任务,爲什麽p13会在error之后打印出来

输出截图:
图片描述

写回答

2回答

双越

2022-08-29

把 MyPromise 改为 Promise 就正常了,这应该是 MyPromise 源码的一个问题,我再去查查。

你就按照 Promise 的执行逻辑来理解,不要因为 MyPromise 的问题造成你的误解。

0
0

双越

2022-08-28

打印的截图给我看下

0
1
慕仰5120631
老师,已经把打印的截图重新编辑在问题里了。应该先同步执行完,再输出异步的catch把
2022-08-28
共1条回复

一天时间高效准备前端技术一面 匹配大厂面试要求

针对时下面试高频考点,帮助新人js面试快速通关

4694 学习 · 1681 问题

查看课程