在rxjs传递复合数据可观察链
问题描述:
我有一个代码块,在那里我打电话观测链中,像这样:在rxjs传递复合数据可观察链
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 }) =>
...
THX。还有点卡住了。想你的例子,但在代码失败不幸: –
this.getStuffOne() \t .flatMap(数据=> { \t调试器; \t this.getStuffTwo()映射(MOREDATA => {数据,MOREDATA}); \t }) \t .flatMap((数据,MOREDATA)=> { \t调试器; \t this.getStuffThree()映射(evenMoreData => {数据,MOREDATA,evenMoreData}); \t}) –
我已经更新答案。它有一些语法错误 - 需要用'()'包裹的'{}'等等。 – cartant