如何在Angular 2中完成所有http请求时调用方法

时间:2017-09-11 09:40:14

标签: angular angular2-http

我希望在完成数据和过滤器数据请求后选中复选框。如何检查我的所有请求是否已完成,然后调用该方法。

1 个答案:

答案 0 :(得分:0)

首先看一下RxJs的Observable.forkjoin以及Observables的工作原理。

以下是一些可以帮助您入门的示例代码:

const urls = ['myUrl1', 'myUrl2'];

const requestArray = makeMultipleRequest(this.observableArr(urls));

observableArr = queryUrls => queryUrls.map((url) => this.httpRequest(url));
makeMultipleRequest = (requestArr) => Observable.forkJoin(requestArr);        

httpRequest = (url) => this.http.get(url).map((res) => res.json())
                                         .catch((err) => handleError())

requestArray.subscribe((data) => {
  // Do what you want with the results from your requests
});

不要忘记import { Observable } from 'rxjs/Rx';import { Http } from '@angular/http';

祝你好运