Promise
有哪些方法?
- Promise.prototype.then
then()
方法需要两个参数,第一个参数作为处理 fulfilled 状态的回调函数,回调函数有一个入参即 fufilled 状态的结果,而第二个参数则作为处理 rejected 状态的回调函数,回调函数有一个入参即 rejected 的原因。返回一个新的 Promise。
- Promise.prototype.catch
catch()
方法返回一个新的 Promise,并且处理 rejected 的情况。它的行为与调用 Promise.prototype.then(undefined, onRejected)
相同
- Promise.prototype.finally
finally()
方法返回一个新的 Promise。在 promise 结束时,无论结果是 fulfilled 或者是 rejected,都会执行指定的回调函数。
- Promise.resolve()
Promise.resolve()
方法返回一个以给定值解析后的 Promise 对象。如果这个值是一个 promise,那么将返回这个 promise;如果这个值是 thenable(即带有 “then” 方法),返回的 promise 会“跟随”这个 thenable 的对象,采用它的最终状态;否则返回的 promise 将以此值完成。此函数将类 promise 对象的多层嵌套展平。
- Promise.reject()
Promise.reject()
方法返回一个带有拒绝原因的 Promise 对象。
- Promise.all()
Promise.all()
方法接收一个 promise 的 iterable 类型(Array Map Set)的输入,并且只返回一个Promise 实例。当输入的所有 promise 均 fulfilled 后,执行返回的 Promise 实例的 resolve 方法,只要有任何一个输入的 promise reject,执行返回的 Promise 实例的 reject 方法,reject 的 reason 是第一个 reject 的 promise 的 reason
- Promise.allSettled()
Promise.allSettled()
方法返回一个在所有给定的 promise 都已经 fulfilled 或 rejected 后的 promise,并带有一个对象数组,每个对象表示对应的 promise 结果
- Promise.any()
Promise.any()
方法接收一个由 Promise 所组成的可迭代对象,该方法会返回一个新的 promise,一旦可迭代对象内的任意一个 promise 变成了 fulfilled 状态,那么由该方法所返回的 promise 就会变成 fulfilled 状态,并且它的返回值就是可迭代对象内的首先 fulfilled 的 promise 的返回值。如果可迭代对象内的 promise 最终都没有 fulfilled(即所有 promise 都是 rejected),那么该方法所返回的 promise 就会变成 rejected 状态,并且它的拒因会是一个 AggregateError 实例,这是 Error 的子类,用于把单一的错误集合在一起
- Promise.race()
Promise.race()
方法接收一个由 Promise 所组成的可迭代对象,返回一个新的 Promise。一旦迭代器中的某个 promise fullfiled 或 rejected,返回的 promise 就会 fullfiled 或 rejected,值和原因均与第一个返回的 promise 相同。
阅读更多
⬆️支付宝
⬆️微信