在前端处理数据过程中会遇到这样一种情况,我们需要利用不同的接口去请求多组数据,而这些接口并不是嵌套关系,不会利用上一步的请求结果当做入参请求下一步数据。而是需要等待所有异步执行结果组成我们想要的数据样式,这时就用到了一个关键词:forkJoin。它的用法如下:
首先引入相应依赖:
import {Observable} from "rxjs";
然后将所有的http请求组合成数组传入forkJoin:
let arr = [
this.httpClient.get<any>(url1),
this.httpClient.get<any>(url2),
this.httpClient.get<any>(url3)
];
Observable.forkJoin(arr) // 等待所有执行结果
.subscribe(results => {
//此处results是执行完所有异步请求而生成的结果数组,顺序根据arr中请求顺序而定
//res = [res1,res2,res3]
});