数据库中有数据
@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");}
);
返回零而不是空,如果没有数据,为什么以及如何使其返回onSuccess
这是因为
onSuccess一个空列表进来了。并且只会Maybe导致. 它不适用于列表作为返回值。onCompletenullMaybe如果返回值不是一个列表,而只是简单地
GoodsEntity- 获取预期的行为。基于这个答案,过滤一个空列表以获得预期的行为可能会有所帮助: