首页 > 解决方案 > 可观察的 RxJS 动态源

问题描述

我想创建一个包含许多 observable 的 Observable(合并它们)。这可以通过merge(...arrayOfObservables). 问题是有时这个数组会被改变,并且 observable 也应该订阅新的 observables。

标签: rxjsrxjs6

解决方案


您可以将新的 Observable 推送到一个数组,然后发出该数组并使用 订阅它们switchMap

import { of, merge, BehaviorSubject } from 'rxjs'; 
import { switchMap } from 'rxjs/operators';

const s = new BehaviorSubject([of(1), of(2), of(3)]);

s.pipe(
  switchMap(array => merge(...array)),
).subscribe(x => console.log(x));

s.next([...s.getValue(), of(4)]);

现场演示:https ://stackblitz.com/edit/rxjs-vmcqs9


推荐阅读