【发布时间】:2022-01-09 14:50:24
【问题描述】:
我在加载我的页面之前使用 forkjoin 来初始化数据。不幸的是,我已经达到了 forkjoin 6 个参数的限制:
export class Sample implements OnInit {
list1?: Pair[];
list2?: Pair[];
list3?: Pair[];
list4?: Pair[];
list5?: PairExt[];
list6?: PairExt[];
list7?: PairExt[];
constructor(private http: HttpService,
private httpWithCaching: HttpWithCachingService) {
}
ngOnInit(): void {
this.initLists().subscribe(([list1, list2, list3, list4, list5, list6, list7]) => {
this.list1 = list1;
this.list2 = list2;
this.list3 = list3;
this.list4 = list4;
this.list5 = list5;
this.list6 = list6;
this.list7 = list7;
this.initModule();
});
}
initLists(): Observable<[Pair[], Pair[], Pair[], Pair[], PairExt[], PairExt[], PairExt[]]> {
return forkJoin([
this.httpWithCaching.getList1(),
this.httpWithCaching.getList2(),
this.httpWithCaching.getList3(),
this.httpWithCaching.getList4(),
this.httpWithCaching.getList5(),
this.httpWithCaching.getList6(),
this.httpWithCaching.getList7()
]);
}
initModule(): void {
//some requests and initialization after the lists were fetched...
}
因此,上面的代码将不再工作,因为 forkjoin 被限制为 6 个参数。
对于我的情况,最简单的解决方案是什么?我真正想做的就是在调用我的initModule之前获取列表...
提前致谢!
【问题讨论】:
-
你使用的是哪个 RxJS 版本?在 7.3 中,它应该按照您现在使用的方式工作。 stackblitz.com/edit/rxjs-iguovh?devtoolsheight=60
-
啊,很高兴知道 - 我使用的是 6.6
-
它适用于 6.6.7 :) stackblitz.com/edit/rxjs-iguovh?devtoolsheight=60