CompletableEmitter при ошибке выдает OnErrorNotImplementedException - PullRequest
0 голосов
/ 06 марта 2019

У меня есть приложение для Android, и я создал Completable, используя функцию getValue, и я подписываюсь на возвращаемое значение getValue (), которое является Completable.

Completable getValue(){
    Completable.create(
            emitter -> {

                int result = getResult();
                if(result == 1){
                   emitter.onComplete();
                }
                else{
                 emitter.onError();
              }
            })
            .doOnError(t -> Log.i(" Completable ", "Error"));

}

Blockquote

    getValue()
    .subscribeOn(Schedulers.io)
    .toObservable()
    .materialize()
    .subscribe(new CompletableObserver() {
                        @Override
                        public void onSubscribe(Disposable d) {


                        }

                        @Override
                        public void onComplete() {
                          Log.i("Completable  ","onComplete");
                        }

                        @Override
                        public void onError(Throwable e) {
                          Log.i("Completable  ","error");
                        }
                      });

onComplete () печатается в журналах каждый раз, когда я вызываю getValue и когда result = 1. Но onError никогда не вызывается, когда результат! = 1. Вместо этого я получаю исключение OnErrorNotImplementedException. Я вижу в журналах, что мой журнал внутри doOnError () печатается.

Blockquote

Когда я вижу журналы исключений, они отображаются следующим образом

 io.reactivex.exceptions.OnErrorNotImplementedException
        at io.reactivex.internal.observers.EmptyCompletableObserver.onError(EmptyCompletableObserver.java:51)
        at io.reactivex.internal.operators.completable.CompletableCreate$Emitter.tryOnError(CompletableCreate.java:90)
        at io.reactivex.internal.operators.completable.CompletableCreate$Emitter.onError(CompletableCreate.java:76)

Здесь что-то не так?

...