将主体和可观察对象结合起来,等待主体发出一个值,然后发出可观察量



我有一个可观察的主题,我想将它们组合起来并发出可观察值,并在主题获得新值后用它做一些事情。 下面的代码效果很好,但我不想订阅订阅

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);

最新更新