如何合并多个RxJS AjaxObservable调用以生成单个可观察对象?

时间:2017-07-03 19:43:23

标签: ajax angular rxjs

我有一个带有产品列表组件 Angular 4 应用,它显示了产品的名称。从服务器API检索产品的名称。有1000种产品必须在几个ajax调用AjaxObservable中检索。每次通话都返回200个产品,因此必须拨打5个电话才能退回所有产品。

如何使用AjaxObservable实现上述目标?我应该合并所有的observable还是仅创建一个并允许UI订阅?

for (var i = 0; i < 5; i++) {
   var source = Rx.Observable.ajax({ url: 'products', method: 'GET' });
}

1 个答案:

答案 0 :(得分:1)

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