RxJava错误处理
我有一个方法可以创建和合并两个可观察的RxJava错误处理,java,android,rx-java,Java,Android,Rx Java,我有一个方法可以创建和合并两个可观察的 private Observable<String> getData() { Observable<String> observable1 = Observable.just("Just string") .delay(2, TimeUnit.SECONDS); Observable<String> observable2 = Observable.create(new Obs
private Observable<String> getData() {
Observable<String> observable1 = Observable.just("Just string")
.delay(2, TimeUnit.SECONDS);
Observable<String> observable2 = Observable.create(new Observable.OnSubscribe<String>() {
@Override
public void call(Subscriber<? super String> subscriber) {
subscriber.onError(new Exception("Oops!"));
}
});
Observable<String> merged = observable1.mergeWith(observable2);
return merged;
}
observate2
发出的可选数据和来自observate2
的错误不能终止发出,但另一方面,我希望在单个观察者中处理所有错误和数据。我可以在可观察1
的结果之后返回此错误吗?可能吗
预期结果:
onNext: Just string
onError: Oops!
听起来您需要类似于Observable.mergeDelayError()
的东西
它应用了一个合并
操作,但如果一些可观察对象调用了onError
,它不会立即停止,而是捕获错误
一旦所有其他可观测数据顺利完成,错误就会传播,可能会合并成一个单一的复合异常,您可能应该详细说明为什么会出现这种情况。这可能是对可观测数据的一个很好的解释。mergeDelayError():
onNext: Just string
onError: Oops!