【问题标题】:How to call a method when all the http request are completed in Angular 2在Angular 2中完成所有http请求后如何调用方法
【发布时间】:2018-02-19 12:13:12
【问题描述】:

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

【问题讨论】:

  • 能否在发出 Http 请求的地方添加代码
  • 我从不同的不同 api 获取数据。我想在所有 api 的数据完成后调用该方法。
  • 是的。那么你能在调用所有这些 api 的地方添加代码吗?

标签: angular angular2-http


【解决方案1】:

首先看看 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';

祝你好运

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-10-21
    • 1970-01-01
    • 2018-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多