我有一组看起来相当笨重的代码,其中来自一个可观察对象的数据被馈送到另一个,如下所示:
let source = this.myService.getFoo()
.subscribe(result => {
let source2 = this.myService.getMoo(result)
.subscribe(result2 => { // do stuff });
});
我知道有多种方法可以组合和链接,但我需要将源中的数据输入到 source2 中。订阅的嵌套看起来很糟糕,我很确定有更好的方法来做到这一点。
谢谢!
最佳答案
要将 Observable 发出的项目转换为另一个 Observable,您可能需要使用 flatMap 运算符。它创建了一个内部 Observable 并将其结果扁平化到外部流。
const source = this.myService
.getFoo()
.pipe(
flatMap(result => this.myService.getMoo(result))
)
.subscribe(result2 => {
// do some stuff
});
以下是一些您可以使用的平面运算符,它们的行为不同:关于javascript - Rxjs 一个 Observable 馈入另一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44593900/