如何使用angular2中的observable实现resumeOnError

时间:2016-03-02 19:20:32

标签: typescript angular rxjs observable

我正在使用observables和rxJS库。

我创建我的observable如下:

this.validate$ = new Observable(observer =>
this.validateObserver = observer).share();

然后按如下方式将对象推送到此处:

this.validateObserver.next(responseJson);

如果我正在获取的内容出错,我会按如下方式传递错误:

this.validateObserver.error(this.setErrorMessage(filter));

我从另一个班级订阅如下:

this.uploader.validate$.subscribe(
      result => {
        console.log('result triggered');
      },
      error => {
        console.log('error triggered');
      }

但是我希望我的订阅者在接收到错误后继续听,而不是像现在那样终止收听。

有人可以帮助我处理错误后如何恢复吗?

2 个答案:

答案 0 :(得分:0)

在rxJava文档found here中更明显,但onError意味着终止observable。在通知错误后,您不应该致电onNextonCompleted

以下是文档对onError所说的内容:

  

通知Observer Observable遇到错误   条件。

     

如果Observable调用此方法,则此后不会   调用onNext(T)或onCompleted()。

实现所需内容的一种方法是为错误创建另一个observable,并在遇到错误情况时为该observable调用onNext

答案 1 :(得分:0)