Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Rx java 如何在发出错误后发出更多值?_Rx Java - Fatal编程技术网

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);
            }
        });
}
公共可见