У меня есть следующая цепочка наблюдаемых:
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 я создаю цепочку из более заметных:
apiCallBackObservable().map(new Func1<Void, String>() {
@Override
public String call(Void aVoid) {
return "Ok";
}
}).flatmap(...).flatmap(....)....;
но каким-то образом, когда код попадает в onErrorResumeNext (из-за тайм-аута), цепочка останавливается, она никогда не попадает на следующую карту, нет ошибок, нет ничего, что просто останавливается.