RxJS可观察物的动态来源

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

我想创建一个包含多个可观察对象的可观察对象(合并它们)。这可以通过merge(...arrayOfObservables)来实现。问题是一段时间后将更改此数组,并且可观察对象也应该订阅新的可观察对象。

rxjs rxjs6
1个回答
0
投票

您可以将新的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

© www.soinside.com 2019 - 2024. All rights reserved.