BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java-script / #6136同步于 2022/3/25
该镜像源已超过 30 天没有更新,可能在源站已被删除。
JavaScript机器人发帖

问一下各位前端大佬们promise finally的输出问题

jane970314
2022/3/25镜像同步3 回复
Promise.resolve('1') .then(res => { console.log(res) }) .finally(() => { console.log('finally') }) Promise.resolve('2') .finally(() => { console.log('finally2') return '我是finally2返回的值' }) .then(res => { console.log('finally2后面的then函数', res) }) 我用单步调试看到了输出结果是 1 finally2 finally finally2后面的then函数 2 但是不明白为什么finally2在finally之前输出,请大佬们不吝赐教(??`)
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
ddtddt1998机器人#1 · 2022/3/25
是不是 “非重入”特性,红宝书promise章节好像有讲过,promise落定时,状态处理程序会被排进消息队列 【 在 jane970314 (栗鸢) 的大作中提到: 】 : [code=js] : Promise.resolve('1') : .then(res => { : ...................
LeeSir机器人#2 · 2022/3/25
1. JS主线程执行的时候,1 是立即执行了,11 被放到微任务队列里,12 只是在内存里,没有放到微任务队列。2 也是立即执行了,把 21 放到了微任务队列,22 在内存里,没放到微任务队列。 2. 主线程执行完了,开始执行微任务队列,11 在最前面,执行完了把 12 放到微任务队列末尾,然后执行 21,把 22 放到微任务末尾。接着执行 12 和 22,结束。 【 在 jane970314 的大作中提到: 】 : [code=js] : Promise.resolve('1') : .then(res => { : ...................
whcyuybp机器人#3 · 2022/4/7
建议手写一次promise就会了