Javascript RxJS中的嵌套http请求

Javascript RxJS中的嵌套http请求,javascript,angular,rxjs,frontend,Javascript,Angular,Rxjs,Frontend,我是初学者,所以我面临一个挑战。如何使用RxJS与Angular中的嵌套http请求交互 .pipe( map((res): Collection => ({ id: res.id, name: res.name, description: res.description, tracks: res.tracks.items.map(track => this.trackServic

我是初学者,所以我面临一个挑战。如何使用RxJS与Angular中的嵌套http请求交互

.pipe(
    map((res): Collection => ({
            id: res.id,
            name: res.name,
            description: res.description,
            tracks: res.tracks.items.map(track => this.trackService.fetchTrack(track.id)) //?
        }) 
    ),
)

您需要使用
switchMap
从外部可观察对象映射到内部可观察对象。看到一个数组中有多个HTTP调用,可以使用
forkJoin
并行触发它们

试试下面的方法

outerObservable().pipe(
switchMap((res):集合=>{
forkJoin(res.tracks.items.map(track=>this.trackService.fetchTrack(track.id)).pipe(
地图(轨道=>({
id:res.id,
名称:res.name,
描述:res.description,
轨道:轨道
}))
)
})
).订阅(…)

您可能会发现它对我非常有用,但我必须做的一件事是将(res:Collection)替换为(res:Collection)
(res:Collection)
不起作用,但我已更新了答案以反映您的更改。