ES2020 异步迭代器详解

阅读时长 5 分钟读完

异步迭代器是 ES2020 中新增的一个特性,它可以让我们以异步的方式按顺序迭代数据集合。这个特性对于处理需要大量异步操作的数据集合非常有帮助,尤其是在前端开发中,处理异步数据集合是一件非常常见的任务。

什么是异步迭代器

首先我们需要了解什么是迭代器。在 ES6 中,我们可以使用迭代器来遍历基于数组、Map 或 Set 数据集合的元素。例如:

在 ES2020 中,异步迭代器是一种特殊的迭代器,它返回的是一个 Promise,这个 Promise 会在下一次迭代完成后 resolve 并返回相应的值。这种方式可以很好地处理需要进行异步操作的数据集合。

如何使用异步迭代器

使用异步迭代器需要遵守一些规则,具体如下:

  1. 使用 Symbol.asyncIterator 符号来定义异步迭代器。
-- -------------------- ---- -------
----- ------------- -
  ----- - ------------------------ -
    ----- -
    ----- -
    ----- -
  -
-
----- -- - --- ---------------
----- ------ - --------------------------
----------------- -------------- -- - ------ -- ----- ----- -
----------------- -------------- -- - ------ -- ----- ----- -
----------------- -------------- -- - ------ -- ----- ----- -
----------------- -------------- -- - ------ ---------- ----- ---- -
  1. yield 语句需要使用 await,因为它返回的是 Promise。
-- -------------------- ---- -------
----- -------- - ---------------- -
  ----- ----- ------------------
  ----- ----- ------------------
  ----- ----- ------------------
-
----- --------- - ----------------
----------------- ----------------- -- - ------ -- ----- ----- -
----------------- ----------------- -- - ------ -- ----- ----- -
----------------- ----------------- -- - ------ -- ----- ----- -
----------------- ----------------- -- - ------ ---------- ----- ---- -
  1. 在使用异步迭代器时,需要使用 for await...of 循环。这个循环可以遍历异步迭代器返回的所有值。
-- -------------------- ---- -------
----- -------- - ---------------- -
  ----- ----- ------------------
  ----- ----- ------------------
  ----- ----- ------------------
-
----- --------- - ----------------
--- ----- ------ ----- -- ---------- -
  ------------------
-
-- - - -

更多示例

使用异步迭代器读取文件内容

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

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

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

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

使用异步迭代器请求后端 API

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

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

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

总结

异步迭代器是 ES2020 中的一个新特性,它可以让我们以异步的方式按顺序迭代数据集合。使用异步迭代器需要遵守一些规则,并使用 for await...of 循环来遍历返回的所有值。该特性非常适合于处理需要大量异步操作的数据集合,尤其是在前端开发中,很多情况下我们需要处理异步的 API 返回数据。

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

纠错
反馈