将Flowable <list <t >>转换为Single <boolean>

时间:2018-07-02 21:44:56

标签: android kotlin android-room rx-kotlin

我在@Dao中有一个功能。让我们将该类称为DaoClass

abstract fun getData() : Flowable<List<Data>>

现在,我想检查返回的数据列表是否为空。我浏览了DaoClass_Impl(在生成时生成),发现Flowable不会为空。因此,

getData().isEmpty将始终返回false。

所以我所做的是 getData().singleOrError().map{it.isEmpty()}返回,如果返回的列表实际上为空。

但是我有问题,因为价值没有得到释放。

1 个答案:

答案 0 :(得分:2)

您需要检查singleOrError的实际作用:

  

返回一个Single,它发出此Flowable发出的单个项目,如果此Flowable仅发出一个项目,否则,如果此Flowable完成而不发出任何项目,则将发出NoSuchElementException信号,并且如果此Flowable发出多个项目,则将显示IllegalArgumentException。

您要寻找的是firstOrError,它仅返回发出的第一个值。