完成后如何立即再次调用http请求

时间:2018-09-18 08:59:09

标签: angular rxjs

此HTTP调用是长时间轮询。我当前的解决方案是:

interval(5000).subscribe(() => {
    if (!this.isLoading) {
        this.isLoading = true;
        this.httpService.getEvents()
          .pipe(finalize(() => this.isLoading = false))
          .subscribe((r) => {
          // do something
        });
      }
    });

但是我想减少上次http调用完成后的延迟。如何调用此HTTP请求一次再次完成?

1 个答案:

答案 0 :(得分:2)

您似乎可以使用switchMap来取消任何待处理的请求(超过5秒的请求),或者exhaustMap可以等到活动请求完成后,再忽略{{1} }(取决于您要实现的目标)。

interval