Есть данные в базе
@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
Это потому, что в onSuccess приходит пустой список. А Maybe вызовет onComplete только если null эмитит. Со списком в качестве возвращаемого значения работать Maybe не будет.
Если возвращаемым значением назначить не список, но просто GoodsEntity - получите ожидаемое поведение.
Судя по этому ответу вам может помочь фильтрация пустого списка для получения ожидаемого поведения:
maybeWhichEmitsList
.filter { it.isNotEmpty() }
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости