Android onErrorResumeNext的rxjava行为
我很难让Observer.onerror按照我的预期行事Android onErrorResumeNext的rxjava行为,android,rx-java,system.reactive,Android,Rx Java,System.reactive,我很难让Observer.onerror按照我的预期行事 Subscriber orchestratorObserver = new Subscriber<Integer>() { @Override public void onCompleted() { System.out.println("orchestratorObserver."+"onCompleted()"); } @Override public void o
Subscriber orchestratorObserver = new Subscriber<Integer>() {
@Override
public void onCompleted() {
System.out.println("orchestratorObserver."+"onCompleted()");
}
@Override
public void onError(Throwable e) {
System.out.println("orchestratorObserver."+"onError()"+e.getMessage());
}
@Override
public void onNext(Integer i) {
System.out.println("orchestratorObserver."+"onNext() : "+i);
}
};
@Test
public void rxTest() {
Observable.range(0,5)
.doOnNext(new Action1<Integer>() {
@Override
public void call(Integer integer) {
throw new RuntimeException("chain error!!");
}
})
.onErrorResumeNext(Observable.just(-1))
.subscribe(orchestratorObserver);
}
@Test
public void rxTest1() {
final Observable<Integer> errorTrainObservable = Observable.defer(
new Func0<Observable<Integer>>() {
@Override
public Observable<Integer> call() {
return Observable.error(new RuntimeException("source error"));
}
});
errorTrainObservable.onErrorResumeNext(Observable.just(-1));
errorTrainObservable.subscribe(orchestratorObserver);
}
当rxTest1()输出时:
我希望rxTest1输出与rxTest相同的onNext事件-我如何才能做到这一点?i、 e.我想接受错误并在下一个事件上发出一个defualt值
奇怪的是,如果错误在源位置,它的行为是一种方式——但如果错误是链,它的行为是另一种方式?如果你能向我解释的话,还有额外的要点:)这些行:
errorTrainObservable.onErrorResumeNext(Observable.just(-1));
errorTrainObservable.subscribe(orchestratorObserver);
您使用错误处理程序创建了一个可观察的,,然后将其丢弃,然后在不使用错误处理程序的情况下订阅可观察的。以下几行:
errorTrainObservable.onErrorResumeNext(Observable.just(-1));
errorTrainObservable.subscribe(orchestratorObserver);
您使用错误处理程序创建了一个可观察的
,然后将其丢弃,然后在不使用错误处理程序的情况下订阅可观察的
errorTrainObservable.onErrorResumeNext(Observable.just(-1));
errorTrainObservable.subscribe(orchestratorObserver);