将一个发射分成几个

问题描述 投票:0回答:2

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

是否有任何数字可以订阅numberRange$并将数组中的每个数字作为新管道中的单独排放?

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

现在,我正在订阅numberRange$并将输出保存在变量numberRange$中并使用rxjs/operators.from(numberRange).pipe(mergeMap(someFunc, batchCount))执行操作,但我宁愿直接管道numberRange$并在击中mergeMap之前将阵列拆分为单独的排放。

谢谢你的好答案!

rxjs rxjs6
2个回答
1
投票

当然,我认为你可以使用mergeMap分裂情绪。

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

0
投票

你可以使用concatMap

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

of([65, 66, 67, 68]).pipe(concatMap(x => x)).subscribe(console.log);
© www.soinside.com 2019 - 2024. All rights reserved.