我有以下可观察链:
public Observable<Void> ApiCallBackObservable() {
return Observable.fromEmitter(new Action1<AsyncEmitter<Void>>() {
@Override
public void call(final AsyncEmitter<Void> voidAsyncEmitter) {
APICall.setCallBack(new CallBack() {
@Override
public void onResponseReceived() {
voidAsyncEmitter.onNext(null);
voidAsyncEmitter.onCompleted();
}
});
}
}, AsyncEmitter.BackpressureMode.NONE).timeout(100, TimeUnit.MILLISECONDS).onErrorResumeNext(new Func1<Throwable, Observable<? extends Void>>() {
@Override
public Observable<? extends Void> call(Throwable throwable) {
return Observable.empty();
}
});
}
问题是在这个API回调之后,我正在链接更多的observables:
apiCallBackObservable().map(new Func1<Void, String>() {
@Override
public String call(Void aVoid) {
return "Ok";
}
}).flatmap(...).flatmap(....)....;
但不知何故,当代码遇到onErrorResumeNext时(由于超时),链停止它永远不会到达下一个地图,没有错误没有它只是停止。