Abh*_*ain 4 java android rx-java rx-java2
我onErrorReturn用来发出特定的项目,而不是onError如果可观察的对象遇到错误则调用它:
Observable<String> observable = getObservableSource();
observable.onErrorReturn(error -> "All Good!")
.subscribeOn(Schedulers.io())
.observeOn(Schedulers.trampoline())
.subscribe(item -> onNextAction(),
error -> onErrorAction()
);
Run Code Online (Sandbox Code Playgroud)
这工作正常,但我只想在onErrorReturn满足某些条件的情况下使用错误。就像从catch块内部抛出异常一样。
就像是:
onErrorReturn(error -> {
if (condition) {
return "All Good!";
} else {
// Don't consume error. What to do here?
throw error; // This gives error [Unhandled Exception: java.lang.Throwable]
}
});
Run Code Online (Sandbox Code Playgroud)
有没有办法将错误从内部传播到可观察的链中,onErrorReturn就像onErrorReturn从未出现过一样?
使用onErrorResumeNext我想你可以实现你想要的
observable.onErrorResumeNext(error -> {
if(errorOk)
return Observable.just(ok)
else
return Observable.error(error)
})
.subscribeOn(Schedulers.io())
.observeOn(Schedulers.trampoline())
.subscribe(item -> onNextAction(),
error -> onErrorAction()
);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2304 次 |
| 最近记录: |