此HTTP调用是长时间轮询。我当前的解决方案是:
interval(5000).subscribe(() => {
if (!this.isLoading) {
this.isLoading = true;
this.httpService.getEvents()
.pipe(finalize(() => this.isLoading = false))
.subscribe((r) => {
// do something
});
}
});
但是我想减少上次http调用完成后的延迟。如何调用此HTTP请求一次再次完成?
答案 0 :(得分:2)
您似乎可以使用switchMap
来取消任何待处理的请求(超过5秒的请求),或者exhaustMap
可以等到活动请求完成后,再忽略{{1} }(取决于您要实现的目标)。
interval