Javascript RxJS中的嵌套http请求
我是初学者,所以我面临一个挑战。如何使用RxJS与Angular中的嵌套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
.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)
不起作用,但我已更新了答案以反映您的更改。