我遇到了observable.from()的问题。 我有一个ID数组,我需要执行异步操作并返回一个值。
我希望在所有ID完成内部异步操作后,将所有这些值一起获取(不是一个一个)。
这是我的代码:
Observable.from(IDs)
.mergeMap(ID=> this.getDataByID(ID)
.map(data => Observable.of(Object.assign({}, data, dataUpdate[ID]))))
.subscribe(newData=> {
...
})
dataUpdate是一个来自此范围之外的对象,它包含我想要附加到getDataByID()获取的对象的数据。
在这种情况下,为每个事件ID调用了订阅者,newData只包含一个ID的数据。
我可以让newData保存所有数据的对象/数组而不是一个一个吗?
感谢。
答案 0 :(得分:0)
在这种情况下,您将需要使用另一个RxJS运算符,例如forkjoin http://reactivex.io/rxjs/class/es6/Observable.js~Observable.html#static-method-forkJoin
你也可以看看这个 Multiple ajax call in angular2