我有一个观测值列表(obs $)。
obs$ = [ob1$, ob2$..];
每次可观察(ob $)完成时,
我需要做点事,例如。更新分别与每个可观察对象相关的本地对象 ob1 $ = ob1(v1).do_something(); ob1 $ .subscribe(e => v1.state ='ok');
要处理obs $中的所有ob $,我可以递归地遍历所有ob $并完成我想做的事情-更新v1,v2 ...
现在,当我考虑如何做到这一点时,就要考虑使用forkJoin
Observable.forkJoin(...obs$).subscribe( res => ..)
联合响应(res
)不适合我的情况。我对么?
Rxjs中有什么方法可以实现我想要的?
答案 0 :(得分:1)
您可以将每个响应映射到index
或其他任何对象,以便知道Observable完成了哪个源,然后只需使用merge
:
obs$ = [ob1$, ob2$, ...];
const mappedObs$ = obs$.map((ob$, index) => ob$.pipe(
map(value => ({ index, value })),
));
merge(...mappedObs$).subscribe(({ index, value }) => {
if (index === 42) {
// do whatever
}
});