RxJS - zip多个订阅导致ts编译器错误

时间:2016-09-21 13:52:06

标签: angularjs typescript rxjs

我有一个返回filterObservable的角度服务。

我希望通过Rx.Observable.zip()组合多个来电。

它的工作方式与预期一致,但我的typescript编译器会为我的方法抛出一个错误:

error TS2346: Supplied parameters do not match any signature of call target.

你可以给我一个提示,我做错了什么以及如何解决错误?

protected getCombinedResults(ids:number[]) {
    let observablesToGetZipped = ids.map(id => this.myService.loadResource(id));

    if (observablesToGetZipped.length > 1) {
      return Rx.Observable
        .zip(observablesToGetZipped)
        .take(1);
    }

    return observablesToGetZipped[0].take(1);
  }
我打电话给这样的方法:

this.getCombinedResults([1,2,3,4,5]).subscribe(result => { ... });

1 个答案:

答案 0 :(得分:0)

对于对解决方案感兴趣的任何人:

这对我有把戏

return Rx.Observable
    .zip.apply(Rx.Observable, observablesToGetZipped)