gpt4 book ai didi

RxJS:字符串数组的 SwitchMap

转载 作者:行者123 更新时间:2023-12-03 23:29:11 27 4
gpt4 key购买 nike

以下用例:用户可以加入 0...* 组。每个组都有一个 ID 并包含 0...* 个帖子。

我订阅了一个 Observable(以获取他加入的用户的组)并返回一个字符串数组(组 ID)。

const groupIds$ = of(['a', 'b', 'c']);

如果我只有一个,我现在会使用 switchMap 并返回这个新的 observable 并订阅它以从组中获取帖子。

但是我有一个数组,所以这是行不通的。有没有人知道哪个 RxJS 运算符(operator)可以实现这一点来获取所有组的帖子?

或者不存在这种用例的运营商,我必须在订阅时单独进行?

最佳答案

如果您知道将所有源 Observables 作为数组,则可以理想地使用 forkJoin:

groupIds$.pipe(
concatMap(groups => {
const observables = groups.map(id => ...);
return forkJoin(...observables);
})
).subscribe(...);
forkJoin 将按与 groupIds$ 中相同的顺序发出一个数组,其中所有结果。

最终,如果您不关心顺序并且只想并行获得所有结果,您可以使用 merge 而不是 forkJoin (我的意思是直接从 merge 导入的名为 rxjs 的“Observable 创建方法”。不是来自 merge'rxjs/operators' 运算符) .

关于RxJS:字符串数组的 SwitchMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53284718/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com