关注点:
- Promise 的重点在于 状态转换(pending,fulfilled,rejected)
- then的回调存储在 fulfillQueue 和 rejectQueue,只有在状态由pending 转换为完成态的时候才会按照顺序调用 queue 中的回调
- 每次 then 都是返回一个全新的Promise对象
- then(onFulfilled, onRejected):onFulfilled的几种情况
- onFullfilled 不是函数:上一个then的处理结果透传到下一个then去
- onFullfilled 是函数:
- 返回值为Promise对象:返回这个 Promise.then 的结果(其实是一个递归的过程,每次then都会判断当前参数是否为Promise对象,如果是Promise的话会继续执行 then
- 返回值为普通对象:将返回值作为参数执行下一个onFullfill