我遇到 Observable.forkJoin 的问题,它推断出错误的返回类型,然后在传递超过 6 个参数时导致错误。
Observable.forkJoin(service.getType1, service.getType2, service.getType3 ...)
.subscribe(x => {
this.type1Arr = x[0];
this.type2Arr = x[1];
this.type3Arr = x[2];
来自服务的每个函数调用都会返回一个Observable<Array<type>>
。编译器正在确定返回应该是Type1[][]
当我从服务传入的调用超过 6 个时。尽管最多 6 个调用,它仍能正常工作,它将获得正确的返回,并且我可以分配强类型结果。
我正在使用 rxjs 5.4.3 和 Typescript 2.4.0(Visual Studio 的 Typescript 工具是 2.5.2)。
有没有解决这个问题而不需要强制转换的方法?
的打字forkJoin
定义最大值forkJoin
有 6 个参数,如下所示:https://github.com/ReactiveX/rxjs/blob/master/src/observable/ForkJoinObservable.ts#L27 https://github.com/ReactiveX/rxjs/blob/master/src/observable/ForkJoinObservable.ts#L27
请注意,调用方式有多种forkJoin
超过 6 个参数:
Observable.forkJoin(observables)
or
Observable.forkJoin(...observables)
您还可以强制返回类型(https://github.com/ReactiveX/rxjs/blob/master/src/observable/ForkJoinObservable.ts#L35 https://github.com/ReactiveX/rxjs/blob/master/src/observable/ForkJoinObservable.ts#L35):
Observable.forkJoin<Whatever[]>(observables)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)