求帮忙解释一下finally的实现代码?

这段代码我可以大致看懂:
就是then和catch都先执行一边callback

Promise.prototype.finally = function (callback) {
  let P = this.constructor;
  return this.then(
    value  => P.resolve(callback()).then(() => value),
    reason => P.resolve(callback()).then(() => { throw reason })
  );
};

但是有几个疑问:this.then(value,reason)我不是很理解,then里怎么有两个参数?另外这个this指向是啥?

阅读 199
评论
    3 个回答
    • 8.8k

    then 本来就是两个参数,then(onFullfilled, onRejected)

    使用 X.finally(....) 调用得时候,this 指向 X