【发布时间】:2019-12-08 09:16:18
【问题描述】:
我想进行连续的 HTTP 调用并将响应合并到一个唯一的 observable 中。
问题是:我这样做的方式似乎是错误的。确实,我想将第二个请求中的数据合并到第一个请求中,但是我这样做的方式似乎是用第二个请求的结果替换了第一个请求的结果。
这是第一个调用的请求:
[{vehicule_id:123, statistics:{speed:60,rotation:38}},...]
第二个:
[{vehicule_id:123, name:"name",description:"description},...]
而我想要得到的结果:
[{vehicule_id:123, statistics:{speed:60,rotation:38}, name:"name",description:"description},...]
要知道的重要一点:第二个请求需要在第一个请求的响应中提供vehicule_id。 使用我的代码,第二个调用的响应会替换第一个调用的结果,而不是合并它们。
这是我的代码:
getUserVehiculesInfo(user_id: number, language: string): void {
this._data.getUserVehiculesInfo(user_id, language)
.pipe(
map(res => res.data[user_id]),
switchMap(vehicules => forkJoin(vehicules.map(vehicule => this._data.getVehiculesInfo(tank.vehicule_id, language)))),
tap(console.log)
)
.subscribe();
}
【问题讨论】:
标签: rxjs observable rxjs-observables