Как resumeOnError (или аналогичный) в RxJS5


Я хотел бы использовать функцию onErrorResumeNext RxJS, то есть продолжать получать события, даже если ошибка получена (вместо завершения).

Но я вижу в следующем документе, что в RxJS5 нет соответствия: https://github.com/ReactiveX/RxJS/blob/master/MIGRATION.md .

Существует ли обходной путь для использования такой функции? Спасибо!

2 2

2 ответа:

Я тоже искал этого оператора! Я придумал решение для своих нужд, которое, надеюсь, поможет вашим. Это не самое лучшее решение, скорее всего, но я надеюсь, что оно может помочь, пока лучшее решение не будет найдено некоторыми другими здесь, или пока этот оператор не будет добавлен обратно в 5.0 (надеюсь!):)

var Observable = Rx.Observable;

var source1 = Observable.create(function(observer){
    observer.error();
});
var source2 = Observable.create(function(observer){
    observer.next('Continuing on');
    observer.complete();
});


var stream = source1.catch(function(data){
  return source2;
});



stream.subscribe(function(data){
  console.log(data);
});

JS Bin Пример: https://jsbin.com/qadozoveta/edit?html,js, консоль

Вы можете использовать следующее в rxjs5 еще.

 Observable.onErrorResumeNext(observable1$, observable2$, observable3$...)
           .subscribe(() => { ... })

Исходный код OnErrorResumeNext