这是方法代码。我试图等待两个observable完成使用zip,但没有记录,甚至没有调用fooProvider中的http调用。
let obsArray: Observable<any>[] = [];
this.idArray.forEach(id => {
obsArray.push(this.fooProvider.bar(id, 1));
});
Observable.zip(obsArray)
.subscribe(res => console.log(res));
答案 0 :(得分:1)
Observable.zip
接受参数(a, b, ..., n)
。我无法直接使用数组,但它应该与apply
一起使用:
const zip = Observable.zip
zip.apply(null, obsArray).subscribe(...)
apply
会将给定数组转换为函数调用,并将数组元素作为参数传递。
编辑:根据@ martin的评论,如果你的环境支持,你也可以使用spread运算符。 zip(...obsArray).subscribe(...)