【发布时间】:2018-09-19 10:26:57
【问题描述】:
所以我有一个 Observable,它发出一个项目数组。
我想将每个项目映射到一个自定义对象,但其中一个对象字段再次通过 Observables 异步获取。
这是我目前所拥有的:
const resultingObs = arrayObs
.flatMap(x => x); // map array to a stream of items
.mergeMap(item => asyncFetch(item.id)); // get async data from another stream
这很好用,因为它将每个项目都映射到获取的数据,这是我迄今为止试图实现的目标。
不过,我最终想要将mergeMap 合并到一个自定义对象,如下所示:
[{item: item, fetchedData: fetchedData}, {item: item, fetchedData: fetchedData}]
而不是
[fetchedData, fetchedData, fetchedData]
所以如果有意义的话,我需要在同一个运算符中使用类似 map 和 mergeMap 的东西。
谢谢
【问题讨论】:
-
flatMap和mergeMap是同一个东西,后者只是前者的新名称。
标签: angular rxjs observable