我有一个主题并且是可观察的,我想将它们组合起来并发出可观察的值,并在主题获得新值后对其进行一些处理。 下面的这段代码很好用,但我不想在订阅中订阅
this.subject.subscribe(() => {
this.observable.subscribe(b => {
this.someStuffToDo(b);
});
因此,工作流程为: 接下来在主题上调用->可观察的是发出值->使用此值做一些事情。 我已经尝试过CombineLatest和zip,但是它在主题的第一次发出时停止,或者顺序错误。
答案 0 :(得分:2)
如果您使用的是RxJS 6,则可以考虑使用switchMap
之类的pipeable operators。 switchMap将允许您将可观察值映射到内部可观察值,而无需嵌套订阅。
this.subject
.pipe(
switchMap(() => this.observable),
).subscribe((b) => {
this.someStuffToDo(b);
});
然后在next()
上调用subject
将更新其值。
this.subject.next(value);