【发布时间】:2019-08-13 21:11:09
【问题描述】:
我是 rxjs 的新手,我有一个相当简单的案例,我无法用 angular 解决。
我有一个 http 调用来检索一个组,这个组包含一个“伙伴 id”列表、一个“流派 id”列表和一个“区域 id”。
要通过“好友 ID”获取好友对象,我必须通过我的服务调用 API(返回 1 个具有给定 ID 的好友)。
要获取我的流派对象,我可以从我的商店中检索它们,区域也是如此。
问题是我无法用管道解决问题。
this.buddyService.getGroup(groupId).pipe(
mergeMap((group) => forkJoin(
mergeMap(() => forkJoin(group.buddyIds.map((id) => this.buddyService.getBuddy(id)))),
mergeMap(() => forkJoin(group.genreIds.map((id) => this.store.select(GenreState.genre(id))))),
switchMap(() => this.store.select(RegionState.region(group.regionId))))
), takeUntil(this.destroyed$)
).subscribe(([group, buddies, genres, region]) => {
});
所以第一个 mergeMap 将在 1 个订阅中获取所有结果,然后我有 3 个子调用来获取好友、流派和区域。
我想要我的初始响应(组)和 1 订阅中的 3 个子调用的结果,显然这个解决方案不起作用,而且我似乎无法让其他东西起作用。
任何帮助将不胜感激,谢谢!
【问题讨论】:
标签: angular typescript rxjs observable