Skip to content

maomao1996/Promise

Repository files navigation

Promise A+ 规范实现

规范文档

测试用例

实现内容

关键点

原型方法

then 方法

  • 在链式调用时需要返回一个新的 Promise
  • then 方法中,无论是成功还是失败的回调,只要返回了结果就会传入下一个 then 的回调
    • then 方法返回的是一个 Promise 则根据这个 Promise 的状态去调用下一个 then 对应的回调
    • then 方法返回的不是 Promise 则直接传入下一个 then 的成功回调
    • then 方法执行时, onFulfilled onRejected 可能会出现错误,这时需要捕获错误,并执行失败回调(处理成失败状态)
  • 总结
    • 下一个 then 的状态和上一个 then 执行时候的状态无关
    • 只有在 then 方法执行出错或返回的是一个失败的 Promise 时才会走下一个 then 的失败回调,其他情况都会走下一个 then 的成功回调

catch 方法

catch 方法是 .then(null, onRejected).then(undefined, onRejected) 的别名

finally 方法

  • finally 方法本质上是 then 方法的特例
  • finally 方法的回调函数不接受任何参数,所以不知道前面 Promise 的状态
  • finally 方法在执行不出错的情况下,总是返回原来的值,当执行出错时则返回一个失败的 Promise

静态方法

Promise.all() Promise.race() Promise.allSettled() romise.any()参数可以不是数组,但是必须具有 Iterator 接口

About

Promise A+ 规范实现

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published