我正在使用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');
}
但是我希望我的订阅者在接收到错误后继续听,而不是像现在那样终止收听。
有人可以帮助我处理错误后如何恢复吗?
答案 0 :(得分:0)
在rxJava文档found here中更明显,但onError
意味着终止observable。在通知错误后,您不应该致电onNext
或onCompleted
。
以下是文档对onError
所说的内容:
通知Observer Observable遇到错误 条件。
如果Observable调用此方法,则此后不会 调用onNext(T)或onCompleted()。
实现所需内容的一种方法是为错误创建另一个observable,并在遇到错误情况时为该observable调用onNext
。
答案 1 :(得分:0)