Я пытаюсь создать простой сервис опроса, используя 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-клиента или меняю интервал на цикл, служба ведет себя как положено, однако я бы предпочел не использовать эти подходы.Кто-нибудь знает, что мне не хватает?
Я использую angular 7.0.0 и rxjs 6.2.2 Журналы консоли Сетевая вкладка