我正在使用Room和RxJava,希望利用RxJava的威力来过滤从Room返回的数据。假设Room返回用户信息。
很遗憾,这不起作用。 我猜是因为toList()永远不会完成,因为room从未调用onTerminated。 所以我的问题是:我做错了什么?我如何过滤我的用户并最终仍然拥有Flowable?谢谢。
Flowable<List<User> getUsers()
然后我想按年龄>18过滤用户,因此我执行了以下操作:
userDao.getUsers()
.flatMap(listUser -> Flowable.fromIterable(listUser).filter(user -> user.age > 18))
.toList()
.toFlowable()
很遗憾,这不起作用。 我猜是因为toList()永远不会完成,因为room从未调用onTerminated。 所以我的问题是:我做错了什么?我如何过滤我的用户并最终仍然拥有Flowable?谢谢。
filter
之后的flatMap
lambda中应用toList
。据我所知,Room从不完成流,并且toList
要求有限源。您过滤的内部流构成了有限源。 - akarnokd