Как отправлять запросы каждую секунду на сервер с помощью Observer? - PullRequest
0 голосов
/ 04 сентября 2018

Просто обернуть этот код в таймер?

this.requestMethods.CallNotaryRequest(data).subscribe((response: ICallNotaryResponse) => {
    this.requestMethods.CallNotaryRequest();// Call again after 1 second
});

Или есть другой подход?

Мне нужно выполнить тот же запрос, только когда я получил ответ от предыдущего, через 1 секунду

Я пробовал так:

Observable.interval(3000).subscribe(i => {
  this.askToReadyRecordVideo().subscribe(res => {
  });
});

private askToReadyRecordVideo(): Observable<any> {
    return this.requestMethods.askToReadyRecordVideo({});
}

Но есть проблема, когда сервер возвращает ошибку, он все еще отправляет запросы

1 Ответ

0 голосов
/ 04 сентября 2018
Observable.interval(3000)
    // the error from inner stream(inside `switchMap`) will propagate to outer stream. 
    // Outer stream will complete.
    .pipe(switchMap(()=>this.askToReadyRecordVideo()))
    .subscribe(console.log);

private askToReadyRecordVideo(): Observable<any> {
    return this.requestMethods.askToReadyRecordVideo({});
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...