内容提要
Promise静态方法包括.any、.all、.race、.allSettled、.resolve和.reject,分别用于处理多个Promise的不同场景:.any在任一Promise成功时解析,.all在所有Promise成功时解析,.race在第一个Promise完成时解析,.allSettled等待所有Promise完成并返回状态,.resolve和.reject用于创建已解析或已拒绝的Promise。Promise实例方法.then、.catch和.finally用于处理结果和错误。
关键要点
-
Promise静态方法包括.any、.all、.race、.allSettled、.resolve和.reject,用于处理多个Promise的不同场景。
-
Promise.any:当任一Promise成功时解析,如果所有Promise都被拒绝,则返回AggregateError错误。
-
Promise.all:当所有Promise成功时解析,如果任一Promise被拒绝,则返回拒绝状态。
-
Promise.race:返回第一个完成的Promise,无论是成功还是失败。
-
Promise.allSettled:等待所有Promise完成,返回每个Promise的状态。
-
Promise.resolve(value):返回一个已解析的Promise,如果值是Promise,则返回该Promise。
-
Promise.reject(reason):返回一个已拒绝的Promise,常用于模拟错误。
-
Promise实例方法包括.then、.catch和.finally,用于处理结果和错误。
-
.then(onFulfilled, onRejected):处理Promise的解析或拒绝结果。
-
.catch(onRejected):处理Promise链中的任何拒绝,等同于.then(null, onRejected)。
-
.finally(onFinally):无论Promise是成功还是失败,都会执行,常用于清理工作。
延伸问答
Promise.any方法的作用是什么?
Promise.any方法在任一Promise成功时解析,如果所有Promise都被拒绝,则返回AggregateError错误。
Promise.all与Promise.any有什么区别?
Promise.all在所有Promise成功时解析,如果任一Promise被拒绝则返回拒绝状态,而Promise.any只要任一Promise成功就解析。
如何使用Promise.race方法?
Promise.race方法返回第一个完成的Promise,无论是成功还是失败,使用时只需传入Promise数组。
Promise.allSettled的返回结果是什么?
Promise.allSettled返回一个数组,包含每个Promise的状态,状态可以是fulfilled或rejected。
Promise.resolve和Promise.reject的用途是什么?
Promise.resolve用于创建已解析的Promise,而Promise.reject用于创建已拒绝的Promise,常用于模拟错误。
Promise实例方法.then的作用是什么?
.then用于处理Promise的解析或拒绝结果,可以传入两个回调函数,分别处理成功和失败的情况。