@dev-executor

Как предотвратить остановку Observable?

Есть такой код, в случае ошибки интервал прекращается, и observable становится выполненым, как это предотвратить?
Observable.interval(3000)
            .do(value => console.log('attempt #', value))
            .switchMap(() => this.http.get(url))
            .catch (err => Observable.empty())
            .subscribe(data => console.log(data));
  • Вопрос задан
  • 137 просмотров
Решения вопроса 1
@davidnum95
Нужно внутри switchMap создать новый Observable который будет перехватывать ошибку:
Observable.interval(3000)
            .do(value => console.log('attempt #', value))
            .switchMap(() => Observable.defer(() => this.http.get(url))
                  .map(data => data)
                  .catch(err => console.log(err))
            )
            .catch (err => Observable.empty())
            .subscribe(data => console.log(data));
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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