[JavaScript] 第1369天 请问Promise有哪些实例方法?并描述下各方法的作用

78 阅读2分钟

Promise有以八种下实例方法:

  • then(onFulfilled, onRejected):注册当Promise实例成功执行时和失败时的回调函数,返回一个新的Promise实例。
  • catch(onRejected):注册当Promise实例失败时的回调函数,返回一个新的Promise实例。
  • finally(onFinally):注册当Promise实例无论成功还是失败都会执行的回调函数,返回一个新的Promise实例。
  • Promise.resolve(value):将一个普通的值或者一个已经成功的Promise实例转换成一个新的Promise实例,并返回该实例。如果value是一个Promise实例,则直接返回该实例。
  • Promise.reject(reason):创建一个状态为rejected的Promise实例,reject原因为传入的reason。
  • Promise.all(iterable):接收一个可迭代对象(如数组),返回一个新的Promise实例。当可迭代对象中所有的Promise实例状态都变成resolved时,返回的Promise实例状态为resolved,其值为一个数组,包含了所有Promise实例的结果值。如果其中有一个Promise实例状态变成rejected,则返回的Promise实例状态为rejected,其值为第一个rejected Promise实例的结果值。
  • Promise.allSettled(iterable):接收一个可迭代对象(如数组),返回一个新的Promise实例。当可迭代对象中所有的Promise实例都被settled时(状态为resolved或rejected),返回的Promise实例状态为resolved,其值为一个数组,包含了所有Promise实例的结果值和状态。
  • Promise.race(iterable):接收一个可迭代对象(如数组),返回一个新的Promise实例。当可迭代对象中任意一个Promise实例状态发生变化(resolved或rejected)时,返回的Promise实例状态为该Promise实例的状态,其值为该Promise实例的结果值。

总结

这些实例方法都是Promise的内置方法,用于管理Promise的状态以及处理异步操作的结果。通过这些方法可以更好地组织Promise的执行流程,实现各种不同的异步场景。

更多题目

github.com/haizlin/fe-…