rxJava Наблюдаемая цепочка останавливается после onErrorResumeNext - PullRequest
0 голосов
/ 09 мая 2018

У меня есть следующая цепочка наблюдаемых:

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 (из-за тайм-аута), цепочка останавливается, она никогда не попадает на следующую карту, нет ошибок, нет ничего, что просто останавливается.

...