如何使用 Promise.allSettled 统一处理多个请求返回结果

阅读时长 3 分钟读完

在前端开发中,我们常常需要同时处理多个异步请求的返回结果。而在实际的开发中,我们往往会遇到一些请求成功和失败的情况,这时候我们需要针对成功或者失败做出不同的处理。在这样的情况下,Promise.allSettled 函数可以帮助我们更加方便地统一处理多个请求返回的结果。

Promise.allSettled 简介

Promise.allSettled 是 Promise 对象的一个静态方法,接收一个 Promise 数组并行执行,当所有 Promise 都执行完毕后,返回一个数组,其中每个元素均代表相应的 Promise 是否成功,这样我们就可以统一处理多个请求的返回情况了。

Promise.allSettled 方法会返回一个 Promise 对象,执行成功时会返回一个数组,其中每个元素是一个对象,对象分为两种情况:

  1. Promise 对象成功时对应的对象:

    • status: 字符串,表示 Promise 对象状态,值为 'fulfilled'
    • value: 表示 Promise 对象成功时的结果。
  2. Promise 对象失败时对应的对象:

    • status: 字符串,表示 Promise 对象状态,值为 'rejected'
    • reason: 表示 Promise 对象失败时的原因。

Promise.allSettled 示例

下面我们以一个发送多个请求的场景来展示 Promise.allSettled 的用法:

-- -------------------- ---- -------
----- ---- - -----------------------------------------------
----- ---- - -----------------------------------------------
----- ---- - -------------------------------------------------

-------------------------------- ------------ -------------
  ------------- -- -
    -------------------- ---------
    ---------------------- -- -
      -- -------------- --- ------------ -
        ------------------ --------------------
      - ---- -
        -------------------- ---------------
      -
    --
  --
  ------------ -- ----------------------

在上面的示例中,我们定义了三个请求的 URL,分别发送了请求,并通过 Promise.allSettled 统一处理它们的返回,最终输出请求的结果。在运行上面的代码后,你会发现,当请求成功时,我们会输出请求返回的 JSON 数据;当请求失败时,我们会输出请求失败的原因。

总结

在对多个请求返回结果进行统一处理时,Promise.allSettled 是一个非常实用的方法,在开发中我们可以利用它来更加方便地处理多个异步请求的返回情况。这样不仅提高了开发效率,也让我们的代码更加可维护性。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64a4dd0848841e9894144ff0

纠错
反馈