首页 > 解决方案 > rxJava Observable 链在 onErrorResumeNext 之后停止

问题描述

我有以下可观察的链:

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(因为超时)时,链停止它永远不会到达下一个地图,没有错误没有任何东西它只是停止。

标签: androidrx-java

解决方案


推荐阅读