onError не вызывается, когда Maybe получает значение NULL - PullRequest
0 голосов
/ 22 декабря 2018

Я учусь, как использовать Может быть, можно наблюдать.Я создал приведенный ниже пример.Incase of

Maybe.just(value) I will receive the value in onSuccess callback.

В случае Maybe.just (null) я ожидал получить журнал от onError.Однако, согласно опубликованному коду, когда я запускаю код, приложение вылетает, и я не получаю никаких журналов.Скажите, пожалуйста, почему я не получаю никаких журналов от onError ()?

код

Maybe.just(null)
            .subscribe(
                    i->Log.i("TAG:", "[onSuccess]: " + i),
                    err->Log.e("TAG", "[ERROR] err.getMessage(): " + err.getMessage()),
                    () -> Log.i("TAG", "[COMPLETED]: ")
         );

1 Ответ

0 голосов
/ 22 декабря 2018

Вы не можете создать Maybe, делая Maybe.just(null).Он выдаст NullPointerException, поэтому ваше приложение вылетает.

Некоторые люди предлагали, чтобы в библиотеке была опция Создать значение из нуля в RxJava , но, к сожалению, это победило 'может произойти:

Закрытие не произойдет.Статические методы, возвращающие типы RxJava, могут жить в любом внешнем классе.

Обходное решение для этого заключается в замене этого:

Maybe.just(null)

Для этого:

Maybe.fromCallable(() -> null)
...