Reputation: 1189
I want to handle exception by emitting 2 items. I would like to have something like
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)) }
Or since both onComplete
or onError
I have to close the loading dialog, may I have something like
aHttpObservable()
.flatMap{ handleHttpResponse() }
.startWith{ Observable.just(LoadingOn) }
.onTerminate{ Observable.just(LoadingOff) }
.onErrorReturn{ error -> OnError(error) }
How can I do that? Thanks.
Upvotes: 0
Views: 157
Reputation: 3253
Use onErrorResumeNext()
Observable.error(new RuntimeException("test"))
.onErrorResumeNext(error -> {
return Observable.just("a_message", error.toString());
})
.subscribe(System.out::println);
Upvotes: 1