可观察对象的 RxJS 动态源
RxJS dynamic source of observables
我想创建一个包含许多可观察对象的可观察对象(合并它们)。这可以通过 merge(...arrayOfObservables)
来实现。问题是有时这个数组会被改变,observable 也应该订阅新的 observables。
您可以将新的 Observables 推送到一个数组,然后发出该数组并使用 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)]);
我想创建一个包含许多可观察对象的可观察对象(合并它们)。这可以通过 merge(...arrayOfObservables)
来实现。问题是有时这个数组会被改变,observable 也应该订阅新的 observables。
您可以将新的 Observables 推送到一个数组,然后发出该数组并使用 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)]);