如何在RxJava2的错误返回中发出多个项目?

时间:2019-04-23 14:05:46

标签: android error-handling rx-java2

我想通过发出2个项目来处理异常。 我想要类似的东西

handleHttpResponse(): Observable()
LoadingOn, LoadingOff, OnError(error): Item

aHttpObservable()
    .flatMap{ handleHttpResponse() }
    .startWith{ Observable.just(LoadingOn) }
    .concatWith{ Observable.just(LoadingOff) }
    .onErrorReturn{ error -> Observable.just(LoadingOff, OnError(error)) }

或者因为onCompleteonError我都必须关闭加载对话框,所以我可能会遇到

aHttpObservable()
    .flatMap{ handleHttpResponse() }
    .startWith{ Observable.just(LoadingOn) }
    .onTerminate{ Observable.just(LoadingOff) }
    .onErrorReturn{ error -> OnError(error) }

我该怎么做?谢谢。

1 个答案:

答案 0 :(得分:1)

使用onErrorResumeNext()

Observable.error(new RuntimeException("test"))
        .onErrorResumeNext(error -> {
            return Observable.just("a_message", error.toString());
        })
        .subscribe(System.out::println);