59
задан 2 February 2018 в 19:28

2 ответа

это может быть легко сделано через switchMap

Observable.timer(0, 5000)
          .switchMap((t) =>
            this.http.get(...).pipe(
                catchError(...)
            )
          )
          .subscribe(...)
1
ответ дан 1 November 2019 в 11:39

Disaclaimer: это было первоначально редактированием для другого ответа, но содержит слишком много изменений.

Это может быть легко сделано через switchMap:

Observable.timer(0, 5000)
  .switchMap(() => this.http.get(...).pipe(...)
  .subscribe(...)

Или в [1 111] синтаксис RxJS 6 :

import { timer } from 'rxjs';
import { switchMap } from 'rxjs/operators';

timer(0, 5000) // repeats every 5 seconds
  .pipe(switchMap(() => this.http.get(...).pipe(...))
  .subscribe(...);

можно даже использовать interval вместо timer:

import { interval } from 'rxjs';
import { switchMap } from 'rxjs/operators';

interval(5000) // repeats every 5 seconds
  .pipe(switchMap(() => this.http.get(...).pipe(...))
  .subscribe(...);
0
ответ дан 1 November 2019 в 11:39

Другие вопросы по тегам:

Похожие вопросы: