如何合并多个RxJS AjaxObservable调用来创建单个observable?

如何合并多个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' }); 
} 
+1

看一看这些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

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