检查一组未观察到的可观察对象是否已完成
问题描述:
我在Angular 2的HTTP请求中创建可观察对象。如果所有可观察对象完整无误,我想运行一段代码。检查一组未观察到的可观察对象是否已完成
现在,我使用forkJoin我的观测
Observable.forkJoin(observables)
.subscribe(
success => {
//code
},
error => console.log('error'));
}
时遇到的问题,结合阵列是forkJoin再次闪光的HTTP的请求。当我创建observable时,我已经解雇了他们,订阅它并放入一个数组中。是否有相当于forkJoin的地方,我可以在完成所有可观察事件之后运行一段代码,而不再次触发HTTP请求?
答
我认为问题是你订阅那些observables
两次,但他们是冷观察他们被解雇了两次。
为了防止这种情况,我建议你遵循这个线程解决此问题What is the correct way to share the result of an Angular 2 Http network call in RxJs 5?
你可以使用[flatMap]把它们连(https://github.com/Reactive-Extensions/RxJS/blob/master /doc/api/core/operators/selectmany.md#rxobservableprototypeflatmapselector-resultselector) –
或者使用[.do](https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators /do.md)而不是.forkJoin – hiper2d