1

使用 RxJS,我需要从 Observable 中检索单个值,然后使用pluck().

我有一个可行的解决方案,但它并不优雅。有没有办法简化或改进流程?

this.fooService.singleValue$.subscribe(value => {
   this.barService.allResults$.pipe(pluck(value)).subscribe(pluckedResult => {
       // do something with the plucked result
   });
});
4

1 回答 1

4

不推荐使用嵌套订阅的方式(即使用显式订阅)。在这些类型的情况下最好使用switchMap/ concatMap/mergeMap运算符,这样您就不需要订阅两次,而只需订阅一次。

this.fooService.singleValue$.pipe(switchMap((value => {
                    return this.barService.allResults$.pipe(pluck(value));
                }))).subscribe(() => {
                    //do something
                });
于 2019-05-31T04:21:04.617 回答