【发布时间】:2017-11-01 12:14:09
【问题描述】:
fun loadItems(id: Int): Flowable<List<Item>> {
return dao.loadItems(id).toFlowable()}
因为dao.loadItems() 返回Single,所以它有效,但是
我想要 Flowable (监听数据库更改)并且必须 toList()
我的旧代码 dao.loadItems() 返回 Single
val items = shoppingListsRepository.loadItems(shoppingListId)
.flatMapIterable { shoppingListItem -> shoppingListItem }
.flatMap { shoppingListItem ->
loadOfferForShoppingListItem(shoppingListItem.offerId)
.map { offer ->
Pair(shoppingListItem, offer)
}
.map { it -> shoppingListWithOffer(it.first, it.second) }
.subscribeOn(Schedulers.computation())
}.toList()
.toFlowable()
这是我的新代码,它可以工作,但是当我将 loadItems() 的返回类型更改为 Flowable 时它不起作用?我做错了吗?
val items = shoppingListsRepository.loadShoppingListItems(shoppingListId)
.flatMap { it ->Flowable.fromIterable(it)}
.flatMap { shoppingListItem ->
loadOfferForShoppingListItem(shoppingListItem.offerId)
.map { offer -> Pair(shoppingListItem, offer) }
.map { it -> shoppingListWithOffer(it.first, it.second) }
}.toList()
.toFlowable()
【问题讨论】:
标签: android rx-java2 android-room