如何合并多个RxJS AjaxObservable调用来创建单个observable?
问题描述:
我有一个角4应用程序与产品列表组件,显示产品的名称。产品的名称从服务器API中检索。有1000种产品必须在几个阿贾克斯调用AjaxObservable
中检索。每次通话返回200个产品,因此必须打5个电话才能退回所有产品。如何合并多个RxJS AjaxObservable调用来创建单个observable?
我如何用AjaxObservable
实现上述目标?我应该合并所有观察对象还是只创建一个,并允许UI订阅?
for (var i = 0; i < 5; i++) {
var source = Rx.Observable.ajax({ url: 'products', method: 'GET' });
}
答
https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/core/operators/combinelatest.md
let obs1: Observable<any> = Observable.of('val1', 'val2');
let obs2: Observable<any> = Observable.of('val3', 'val4');
Rx.Observable.combineLatest(obs1, obs2).subscribe(values => {
console.log(values) //values is array - this statement will print [val2, val4]
});
此外,你可以看看这个答案:Rxjs: Observable.combineLatest vs Observable.forkJoin
看一看这些https://stackoverflow.com/documentation/rxjs/8247/common-食谱/ 28035 /发送多重连续http请求#t = 201707032010206431009和https://stackoverflow.com/documentation/rxjs/8247/common-recipes/27973/sending-multiple-parallel-http-requests#t= 201707032010188543721 – martin