itemDao.getAllItems()
返回Flowable<MutableList<ItemEntity>>
itemDao.getAllDetailsItem()
返回Flowable<MutableList<DetailEntity>>
我首先需要获取Items列表,然后通过对数据库的以下查询,获取这些元素的Detail列表。由于我同时使用两个Item和ItemEntity 对象,因此我使用自己的Mapper类,该方法mapDetailItem
返回 pojo Item类。
此方法有效,但进程不终止且方法loadLocalItem()
不返回Flowable<MutableList<Item>>
override fun loadLocalItem(): Flowable<MutableList<Item>> {
return itemDao.getAllItems()
.flatMap {
Flowable.fromIterable(it).flatMap { item ->
itemDao.getAllDetailsItem(item.idItem)
.map { details ->
mapper.mapDetailItem(item, details)
}
}.toList().toFlowable()
}
}
问题是它
.toList()
一直等到“线程结束”才被调用onComplete()
。要解决问题,您需要
itemDao.getAllDetailsItem()
返回Single<MutableList<DetailEntity>>
. 那么你的代码将是:如果这是不可能的,那么你可以试试这个: