取得订阅的结果并将其立即应用于另一个订阅

时间:2019-05-31 04:01:30

标签: rxjs rxjs-pipeable-operators

在使用RxJS时,我需要从Observable中检索单个值,然后立即使用read(0, ..., ...)将其应用于单独的订阅。

我有一个可行的解决方案,但它并不雅致。有没有一种方法可以简化或改善流程?

pluck()

1 个答案:

答案 0 :(得分:4)

不建议使用嵌套订阅(例如使用显式订阅)。 在这种情况下最好使用switchMap / concatMap / mergeMap运算符,因此您无需订阅两次,而只需订阅一次。

this.fooService.singleValue$.pipe(switchMap((value => {
                    return this.barService.allResults$.pipe(pluck(value));
                }))).subscribe(() => {
                    //do something
                });