Promise方法介绍

Promise.allPromise.racePromise.allSettledPromise.any 是 JavaScript 中用于处理多个 Promise 对象的几种方法。它们各自有不同的用途和行为:

  1. Promise.all:

    • 接收一个 Promise 对象的数组作为参数。
    • 只有当所有的 Promise 都成功解决(fulfilled)时,它才会解决,并且返回一个包含所有 Promise 结果的数组。
    • 如果任何一个 Promise 被拒绝(rejected),Promise.all 会立即拒绝,并且返回第一个被拒绝的 Promise 的错误。
  2. Promise.allSettled:

    • 接收一个 Promise 对象的数组作为参数。
    • 等待所有的 Promise 都达到最终状态(无论是解决还是拒绝),然后返回一个数组,数组中的每个元素都是一个对象,表示每个 Promise 的最终状态。
    • 每个对象包含两个属性:status(可以是 "fulfilled""rejected")和 value(如果状态是 "fulfilled")或 reason(如果状态是 "rejected")。
  3. Promise.any:

    • 接收一个 Promise 对象的数组作为参数。
    • 它在数组中的第一个解决的 Promise 解决时解决,并返回该 Promise 的结果。
    • 如果 所有的 Promise 都被拒绝,Promise.any 会拒绝,并返回一个聚合的错误,这个错误包含了所有被拒绝的 Promise 的错误。
  4. Promise.race:

    • 同样接收一个 Promise 对象的数组作为参数。
    • 它会立即解决或拒绝,取决于数组中第一个解决或拒绝的 Promise。
    • 如果第一个解决的 Promise 被解决,它返回该 Promise 的结果;如果第一个拒绝的 Promise 被拒绝,它返回该 Promise 的错误。

总结来说:

  • Promise.all 要求所有 Promise 都成功。
  • Promise.race 只关心第一个解决或拒绝的 Promise。
  • Promise.allSettled 等待所有 Promise 完成,不管它们是解决还是拒绝。
  • Promise.any 只关心第一个解决的 Promise,但如果所有 Promise 都拒绝,则会拒绝。

你可能感兴趣的:(前端)