这是方法代码。我正在尝试使用 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));
最佳答案
Observable.zip
采用参数 (a, b, ..., n)
。我无法让它直接与数组一起工作,但它应该与 apply
一起工作:
const zip = Observable.zip
zip.apply(null, obsArray).subscribe(...)
apply
会将给定数组转换为函数调用,并将数组元素作为参数传递。
编辑:根据@martin 的评论,如果您的环境支持,您也可以使用扩展运算符。 zip(...obsArray).subscribe(...)
关于javascript - 等待两个 observable 完成 zip,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49636824/