Rx java 如何在发出错误后发出更多值?
我有一个Rx java 如何在发出错误后发出更多值?,rx-java,Rx Java,我有一个PublishSubject,它从id发出文章: private final PublishSubject<String> inputArticle = PublishSubject.create(); public Observable<Article> getArticle() { return inputArticle.flatMap(getArticleById()); } private Func1<String, Observable
PublishSubject
,它从id发出文章
:
private final PublishSubject<String> inputArticle = PublishSubject.create();
public Observable<Article> getArticle() {
return inputArticle.flatMap(getArticleById());
}
private Func1<String, Observable<Article>> getArticleById() {
return new Func1<String, Observable<Article>>() {
@Override
public Observable<Article> call(String articleId) {
return dataModel.getArticleById(articleId);
}
};
}
如果我发出一个与任何文章都不匹配的文章id,dataModel.getArticleById(id)
发出一个错误,这是正常的。但我想在那个错误之后继续发出值
我正在Android中实现MVVM。我的视图绑定到
公共可观察的getArticle()
。当用户输入文章id时,inputArticle.onNext(inputArticleId)代码>被调用。因此,很可能id不存在。onErrorResumeNext
将在此处工作,请尝试以下操作:
inputArticle.onNext("1234");
public Observable<Article> getArticle() {
return inputArticle
.flatMap(getArticleById())
.onErrorResumeNext(new Func1<Throwable, Observable<? extends Article>>() {
@Override
public Observable<? extends Article> call(Throwable throwable) {
// return either null or some Article object that indicates invalidity
return Observable.just(null);
}
});
}
公共可见