【发布时间】:2020-12-28 18:24:02
【问题描述】:
我正在学习 rxjs,目前面临一些我不太确定如何解决的问题。我需要调用多个 API 请求,但问题是首先我需要获取名称列表,然后为每个名称获取其余数据。到目前为止,我已经提出了两个map 函数,第一个调用将获取名称列表,第二个map 将遍历列表并调用另一个请求以获取其余数据。我认为这是不好的做法,但我不明白如何使用 mergeMap 或 forkjoin 来实现更好的功能代码。
public getNames(): Observable<any> {
return this.httpClient.get<response>(someUrl)
.pipe(map(res => res.results), map((data)=>{
data.forEach(dat => {
this.getDataByName(dat.name).subscribe(res => {
dat.image = res.image;
});
});
return data;
}));
}
public getDataByName(name): Observable<any> {
return this.httpClient.get<any>(urlToGetMoreDataByName)
.pipe(map(res => res.results));
}
【问题讨论】: