Не могу понять почему Maybe возвращает onSuccess

144
11 сентября 2019, 13:10

Есть данные в базе

@Query("SELECT * FROM goodsentity")
Maybe<List<GoodsEntity>>  getAllGoodsEntity();

база пустая данные еще не инсертил .Maybe возвращает onSucces хотя по идеи если данных нет то должен вернуть onComplete

   getGoodsDao().getAllGoodsEntity()
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(
                        it->{
                            Log.e("Error","zero");
                        },
                        ex->{     Log.e("Error","ex");},
                        ()->{     Log.e("Error","emmpty");}
                );

возвращает zero а не empty ,почему и как сделать чтоб если данных нет возвращал onSuccess

Answer 1

Это потому, что в onSuccess приходит пустой список. А Maybe вызовет onComplete только если null эмитит. Со списком в качестве возвращаемого значения работать Maybe не будет.

Если возвращаемым значением назначить не список, но просто GoodsEntity - получите ожидаемое поведение.

Судя по этому ответу вам может помочь фильтрация пустого списка для получения ожидаемого поведения:

maybeWhichEmitsList
    .filter { it.isNotEmpty() }
READ ALSO
Добавить MySQL в IntelliJ IDEA

Добавить MySQL в IntelliJ IDEA

Для работы с БД MySQL пытаюсь импортировать mysql-connector-java-80

130
Jstl в чем смысл form:lable атрибута path?

Jstl в чем смысл form:lable атрибута path?

Для чего нужен атрибут path y form:lableПри такой записи все нормально выводится:

106
Получить адрес файла с помощью ярлыка (.lnk) в JAVA

Получить адрес файла с помощью ярлыка (.lnk) в JAVA

Есть ярлык на папку (lnk), мне нужно, чтобы программа с помощью этого ярлыка получила адрес папки, на которую ярлык указывает

139
Как скрыть NavigationView при редактировании Activity?

Как скрыть NavigationView при редактировании Activity?

В проекте все Activity содержат NavigationView и при заходе в визуальный редактор в AndroidStudio шторка закрывает собой все элементы которые мне нужны на страницеЕсть...

111