npm 包 @async-generators/map-many 使用教程

阅读时长 3 分钟读完

在前端开发中,我们经常需要对多个异步生成器进行操作,例如进行批量筛选或修改。而 npm 包 @async-generators/map-many 正是为了方便我们对多个异步生成器进行处理而生的。本文将为您详细介绍该 npm 包的使用教程。

安装

可通过以下命令进行安装:

使用示例

以下是一个基本的示例,代码中使用了 @async-generators/map-many 对多个异步生成器进行过滤操作:

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

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

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

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

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

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

可以看到,我们使用了 @async-generators/map-many 对 userIds 数组中每一个用户 ID 异步生成器进行了过滤,输出的是筛选后的用户 ID 数组。

API

mapMany(iterable, asyncTransformFn[, options])

这个函数接受以下参数:

  • iterable: 一个包含了异步生成器的可迭代对象。
  • asyncTransformFn: 一个接收当前异步生成器为入参的异步函数,并且必须返回一个异步生成器。
  • options (可选): 一个可选的选项对象,包含 concurrencyerrorHandlingMode 两个选项。

其中,asyncTransformFn 参数是必要的,且必须是一个异步函数,该函数需要接受当前异步生成器为入参,并返回一个异步生成器,该异步生成器会被放入生成器数组中。

mapMany 函数会同时执行所有异步生成器,并返回所有生成器生成的值的数组。当所有生成器执行完毕后,mapMany 函数返回的 Promise 对象将会变成一个数组,该数组将包含所有生成器生成的所有值。

options 参数包含以下两个选项:

  • concurrency (默认值: Infinity): 它限制操作的并发程度。一个数字表示限制的最大值。 如果这个值是 Infinity 数据会同时被处理。
  • errorHandlingMode (默认值: 'parallel'): 它控制当一个生成器生成错误时的行为。可以是 "parallel""yield""parallel" 表示当出现错误时所有生成器都将立即停止,进而抛出错误。 "yield" 表示当出现错误时只有当前生成器将被停止。当前运行的所有其他生成器都将继续执行,生成器组合将在这种情况下跳过抛出错误的生成器,并继续等待其他生成器完成。

总结

通过本文的介绍,我们了解了 npm 包 @async-generators/map-many 的使用方法,它为我们在处理多个异步生成器时提供了很大的方便。希望这篇文章对大家有所指导意义,让大家在前端开发中更加高效地使用该工具。

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

纠错
反馈