将一种排放分为几种

时间:2019-03-18 12:24:03

标签: rxjs rxjs6

我有一个可观察的numberRange$,它发出一组数字,例如[65, 66, 67, 68]

是否有任何数字可以订阅numberRange$并将数组中的每个数字作为新管道中的单独发射进行获取?

每个数字都将用作异步http调用的输入,并且使用mergeMap批量批处理http调用是微不足道的,因为api一次仅允许2个并行计算。

现在,我正在订阅numberRange$并将输出保存在变量numberRange$中,并使用rxjs/operators.from(numberRange).pipe(mergeMap(someFunc, batchCount))来执行操作,但是我宁愿直接通过管道numberRange$并在命中mergeMap之前将阵列分成单独的发射。

感谢您的答复!

2 个答案:

答案 0 :(得分:1)

当然,我认为您可以使用mergeMap来拆分发射。

numberRange$.pipe(
    mergeMap(nums => nums) // mergeMap(nums => from(nums))
).subscribe(console.log);

答案 1 :(得分:0)

您可以使用concatMap

import { of } from 'rxjs';
import { concatMap } from 'rxjs/operators';

of([65, 66, 67, 68]).pipe(concatMap(x => x)).subscribe(console.log);