Promise().then()既然返回的是一个Promise对象, 那么then()中应该有类似于Promise((resolve, reject)=>{})中的resolve和reject的参数,以便向后传递继续(when resolved)或者中断(when rejected)的信息. 但是, then()中只接受两个函数:handleFulfilled,handleRejected, 并且这两个函数中的参数只有一个, 就是上一个Promise中resolve出来的或reject出来的.

解决方法:

在.then()中使用return和throw
任何不是 throw 的终止都会创建一个"已决议(resolved)"状态,而以 throw 终止则会创建一个"已拒绝"状态。
下面这三种情况都是可以的:

handleFulfilled(value)       { /*...*/; return nextValue;  }
handleRejection(reason)  { /*...*/; throw  nextReason; }
handleRejection(reason)  { /*...*/; return nextValue;  }

相关文章:

  • 2019-01-26
  • 2021-11-29
  • 2021-08-30
  • 2022-12-23
  • 2021-09-07
猜你喜欢
  • 2018-08-07
  • 2022-02-21
  • 2021-11-26
  • 2022-12-23
  • 2022-12-23
  • 2021-11-14
相关资源
相似解决方案