我有一段代码在这样的链中调用可观察对象:
getData().flatMap(results => {
return callNextDataMethod(results);
}
.flatMap(results2 => {
// next operation and so forth
})
现在,我知道flatMap将使我可以将上一个可观察到的结果传递给下一个可观察到的结果。但是,我需要既执行此操作,又将结果传递给第一个。假设我对getData中返回的数据进行了一些清理,验证等操作,并且希望将其传递给链中所有flatMap调用。 rxjs中是否有一个运算符可以为我执行此操作?
谢谢
最佳答案
您可以使用map
运算符将flatMap
投影函数接收到的参数与可观察对象的结果结合起来:
getData()
.flatMap(data =>
getMoreData(data).map(moreData => ({ data, moreData }))
)
.flatMap(({ data, moreData }) =>
getEvenMoreData(moreData).map(evenMoreData => ({ data, moreData, evenMoreData }))
)
.flatMap(({ data, moreData, evenMoreData }) =>
...
关于javascript - 在rxjs可观察链中传递复合数据,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43598605/