为什么我的间隔轮询请求仅发生一次?

时间:2019-01-25 16:20:23

标签: angular rxjs bandwidth angular-httpclient

我正在尝试使用rxjs和angular 7提供一个简单的轮询服务,并且遇到了一个反复出现的问题,即我的请求实际上只被触发了一次,但间隔成功完成且没有错误。

我的服务组件如下:

    import { HttpClient, HttpHeaders, HttpRequest } from '@angular/common/http';
    import { interval, Subject } from 'rxjs/index';
    import { exhaustMap } from 'rxjs/internal/operators';

      constructor( private httpClient: HttpClient ) {
      }

     getPing() {
        const req = new HttpRequest('GET', this.getUrl, {responseType: 'blob', headers: new HttpHeaders(), reportProgress: true});
            interval(1000)
              .pipe(take(4))
              .pipe(exhaustMap(()=> this.httpClient.request(req)))
              .subscribe(data => console.log(data));
     }

我有控制台日志显示间隔发生并在4个间隔后完成,但是根据网络选项卡仅调用第一个请求。
如果我使用fetch而不是http client或将间隔更改为循环,则该服务的行为将与预期的一样,但是我宁愿不使用这些方法。有人知道我在想什么吗?

我正在使用angular 7.0.0和rxjs 6.2.2 Console logs Network Tab

0 个答案:

没有答案