【发布时间】:2021-08-05 06:50:49
【问题描述】:
假设我有一个变量数组,如下所示:[Sasha、Misha、Caitlyn、...String] (string[]) 等等。它有一个很大的 .length 大约 10k 元素左右。
我想和他们一起运行一个异步并行任务,但不是一次全部运行,比如Promise.all,而是批量运行,比如这样:
0 <= return await result
1 <= return await result, then next 2 (or N)
2
3
4
5
6
7
当然,我可以通过多种方式来实现,例如使用 for-loop 迭代原语并在内部做出承诺,然后运行它们,或者使用 p-limit,例如,但我听说 RxJS 及其运算符可以提供帮助我和那个。
根据 RxJS bufferCount 看起来就像我正在寻找的东西,但我仍然找不到必要的例子。
附: 如果可能的话,我不喜欢在另一个变量中重新创建我的基元数组,并且有两个不同的数组,大约 20k 个原始数组和大约 20k 个 promise。我更喜欢按批量 (N) 迭代原语,然后形成 Promise,等待它们响应,然后迭代到下一个批量 (N)
【问题讨论】:
标签: javascript node.js typescript rxjs