Angular 自定义高阶可观测映射
所以我有一个可观测的物体,它发出一系列的物体 我想将每个项映射到一个自定义对象,但其中一个对象字段还是通过可观察对象异步获取的 这就是我到目前为止所做的:Angular 自定义高阶可观测映射,angular,rxjs,observable,Angular,Rxjs,Observable,所以我有一个可观测的物体,它发出一系列的物体 我想将每个项映射到一个自定义对象,但其中一个对象字段还是通过可观察对象异步获取的 这就是我到目前为止所做的: const resultingObs = arrayObs .flatMap(x => x); // map array to a stream of items .mergeMap(item => asyncFetch(item.id)); // get async data from a
const resultingObs = arrayObs
.flatMap(x => x); // map array to a stream of items
.mergeMap(item => asyncFetch(item.id)); // get async data from another stream
这很有效,因为它将每个项目映射到获取的数据,这是我迄今为止试图实现的
不过,我希望最终合并到一个自定义对象,如下所示:
[{item:item,fetchedData:fetchedData},{item:item,fetchedData:fetchedData}]
而不是
[fetchedData,fetchedData,fetchedData]
因此,如果有意义的话,我需要在同一个操作符中使用类似map和mergeMap的东西
谢谢您可以将内部异步结果映射到所需的对象:
.mergeMap(item => asyncFetch(item.id)
.map(fetchedData => ({
fetchedData,
item
})
);
是的,我意识到就在我收到你的回答之前。。。我真傻。将接受,谢谢
flatMap
和mergeMap
是同一件事,后者只是前者的新名称。