es8 新增的异步遍历和 Promise.allSettled() 总结

什么是异步遍历?

在 JavaScript 中,我们经常需要遍历数组或者对象。不过,如果要遍历大量的数据,可能会耗费很多时间。为了解决这个问题,ES8 新增了异步遍历功能。

异步遍历是指可以遍历异步数据结构的能力。例如,我们可以通过异步遍历来遍历一个异步生成器的所有值。

ES8 新增的异步遍历的优点

异步遍历的优点有:

  1. 异步遍历可以遍历异步数据结构,实现更高效的异步编程。
  2. 异步遍历可以提高 JavaScript 的运行效率,使得代码更加流畅。

如何使用异步遍历?

在 ES8 中,使用异步遍历可以通过以下方式:

  1. 定义一个异步生成器。异步生成器是一个生成器函数,使用异步和 await 来实现异步迭代。
  2. 使用一个 for-await-of 循环来遍历异步数据的所有值。

以下代码演示了如何使用异步遍历来遍历一个异步数组:

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

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

什么是 Promise.allSettled()?

Promise.allSettled() 是一个在 ES2020 中引入的新方法,可以帮助我们处理多个 Promise 并且不关心它们是否成功执行。Promise.allSettled() 返回一个 Promise,该 Promise 解决为一个对象数组,每个对象都表示一个传递的 Promise 的结果。

对象的属性有:

  • status:Promise 的状态,值必须是 "fulfilled" 或 "rejected"。
  • value/ reason:状态为 "fulfilled" 时,值表示 Promise 的结果值;状态为 "rejected" 时,值表示 Promise 的拒绝原因。

Promise.allSettled() 的优点

Promise.allSettled() 的优点有:

  • Promise.allSettled() 可以处理多个 Promise。
  • Promise.allSettled() 不需要关心 Promise 是否成功执行。
  • Promise.allSettled() 可以让我们更好地处理 Promise 的结果。

如何使用 Promise.allSettled()?

以下代码演示了如何使用 Promise.allSettled() 来处理多个 Promise:

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

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

结论

ES8 异步遍历和 ES2020 Promise.allSettled() 是两个非常实用的功能,它们可以大大提高 JavaScript 的编程效率和可读性。我们应该学习如何使用异步遍历和 Promise.allSettled() 来完成我们的业务需求。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/67355cc30bc820c5824dfd81