如何知道所有Angular2 HTTP调用何时完成
发布时间:2020-12-17 07:56:33 所属栏目:安全 来源:网络整理
导读:我正在编写一个应用程序,它将监视不同服务器上所有应用程序的当前内部版本号.这是通过在每个应用程序中对txt文件发出http请求来完成的.我正在使用foreach循环. 我遇到的问题是我不确定(使用Observables)如何知道所有请求何时完成. 当请求返回时,我将响应添加
我正在编写一个应用程序,它将监视不同服务器上所有应用程序的当前内部版本号.这是通过在每个应用程序中对txt文件发出http请求来完成的.我正在使用foreach循环.
我遇到的问题是我不确定(使用Observables)如何知道所有请求何时完成. 当请求返回时,我将响应添加为对象数组的属性.然后,一旦我拥有了所有数据,我就将它绑定到组件的模板,然后由管道进行过滤.因此,我需要确保在所有数据完成后才能绑定它. 以下是我获取数据的方式: this.apps.forEach(app => { app.Environments.forEach(env => { this._buildMonitorService.getBuilds(env.URL) .subscribe((data) => { setupBuilds(this.apps,data.url,data._body); }); }); }); setupBuilds将响应添加到我的应用程序数组中. 我正在寻找的东西实际上是一个Promise.all,我将绑定
Observable.forkJoin相当于Promise.all但是对于observables.
这是一个示例: > Angular2 Observable.forkJoin of observable variables – ReferenceError: Observable is not defined 以下是重构代码的方法: var observables = []; this.apps.forEach(app => { app.Environments.forEach(env => { observables.push(this._buildMonitorService.getBuilds(env.URL)); }); }); Observable.forkJoin(observables).subscribe( (result) => { result.forEach((data) => { setupBuilds(this.apps,data._body); }); } ); 这样,您将确保在调用subscribe方法中注册的回调时执行所有请求… (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容