Promise finally 源码问题

Promise.prototype.finally = function(cb){
  return this.then(
    value=> Promise.resolve(cb()).then(()=>value),
    reason=>Promise.resolve(cb()).then(()=>{throw new Error(reason)})
  )
}

求大佬解释下这段代码
特别是其中 Promise.resolve(cb())
为啥 cb 要这么处理啊(这个大佬已经解决)

问题 2.
为什么
Promise.resolve(cb())后 还需要调用 .then(()=>value)意义在哪里

阅读 1.7k
1 个回答

就是为了给回调包装成一个 Promsie。

不过你这个 polyfill 从哪儿看的?cb 也没执行啊,应该是 cb() 才对。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题