angular实现等待多异步请求结果同时处理

在前端处理数据过程中会遇到这样一种情况,我们需要利用不同的接口去请求多组数据,而这些接口并不是嵌套关系,不会利用上一步的请求结果当做入参请求下一步数据。而是需要等待所有异步执行结果组成我们想要的数据样式,这时就用到了一个关键词:forkJoin。它的用法如下:

首先引入相应依赖:

import {Observable} from "rxjs";

然后将所有的http请求组合成数组传入forkJoin:

let arr = [
                this.httpClient.get(url1),
                this.httpClient.get(url2),
                this.httpClient.get(url3)
          ];

Observable.forkJoin(arr)   // 等待所有执行结果
            .subscribe(results => {
                //此处results是执行完所有异步请求而生成的结果数组,顺序根据arr中请求顺序而定
                //res = [res1,res2,res3]
            });

 

你可能感兴趣的:(angular)