【发布时间】:2019-10-11 04:19:38
【问题描述】:
我想在我的 Angular 应用程序中为批量 HTTP 请求设置一个进度计数器。我使用 forkJoin 来执行 Observables 数组。管道只执行一次。对于 obs 变量中的 X 个请求,它不会执行。在 forkJoin 中获取完整的 Observable 是否有其他方法?
这是我尝试过的:
let obs: Observable<any>[] = [...];
let counter: number = 0;
// obs has 5 items here.
forkJoin(obs)
.pipe(
tap(() => {
counter++;
})
)
.subscribe(res => {
})
.add(() => {
loadingRef.close(loadingRef);
this.refresh();
// Counter only equals 1 here.
// It should equal 5.
});
【问题讨论】:
-
在每个输入订阅完成之前,Forkjoin 不会返回。您可能需要使用不同的 rxjs 函数来执行此操作。或许你可以通读this
标签: angular typescript rxjs