0
Observer.onErrorResumeNextを期待通りに動作させるのに問題があります。rxjavaのonErrorResumeNextの動作
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);
}
そうrxTest()出力:rxTest1しばらく
orchestratorObserver.onNext() : -1
orchestratorObserver.onCompleted()
()出力:
orchestratorObserver.onError()source error
私は出力にrxTestと同じonNextイベントをrxTest1をしたいと思います - 私はどのように行うことができますそれ?すなわち、私はエラーを飲み込んで、デフアル値onNextイベントを出したい。
エラーがソースにある場合、一方向に動作しますが、エラーがチェーンであれば別の方法で動作するのは奇妙に思えますか?余分なポイントは、あなたが私にそれを説明することができれば:)
それは私のために馬鹿のバッジに値する... – siliconeagle
私たちはすべてそこにいたことを心配しないでください... –