javascript - 等待两个 observable 完成 zip

标签 javascript typescript rxjs

这是方法代码。我正在尝试使用 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/

相关文章:

javascript - 所有字母字符或所有整数的测试字符串

angular - 当通过 Angular 中的 observable 从服务异步加载元素时,如何将元素添加到列表中?

Angular APP_INITIALIZER

javascript - 数组中的第一个元素

javascript - JS 没有原型(prototype)就无法工作

angular - Bazel + Angular + SocketIO 导致 : Uncaught TypeError: XMLHttpRequest is not a constructor

angular - 使用 Typescript 在 Angular 中忽略 GET 请求中未定义的属性集

javascript - ChartJS v3 与 TypeScript 和 Webpack 的使用

javascript - 这可以重构为示例中看到的更具可组合性的样式吗?

javascript - js flipcards 中的故障 - 翻转