我有一个可观察的主题,我想将它们组合起来并发出可观察值,并在主题获得新值后用它做一些事情。 下面的代码效果很好,但我不想订阅订阅
this.subject.subscribe(() => {
this.observable.subscribe(b => {
this.someStuffToDo(b);
});
所以工作流程是: 接下来在主题上调用 ->可观察的正在发出值 ->用这个值做一些事情。 我已经尝试过 combineLatest 和 zip,但它在主题的第一次发出时停止,或者顺序错误。
如果您使用的是 RxJS 6,则可以考虑使用管道运算符,例如switchMap
。switchMap 将允许您将可观察值映射到内部可观察值,而无需嵌套订阅。
this.subject
.pipe(
switchMap(() => this.observable),
).subscribe((b) => {
this.someStuffToDo(b);
});
在subject
上调用next()
将更新其值。
this.subject.next(value);