我正在开发一个功能,我需要根据本地数据库数据过滤掉网络响应数据。
例如,我的网络层返回一个项目列表,我的数据库层返回一个可观察的ID列表。现在,我只想从网络层返回那些id与数据库层响应中的任何人都匹配的对象。
下面的代码从网络获取数据并将结果保存到数据库(缓存)。
factory.getRemoteDataStore()
.searchForVenues(query)
.toObservable()
.distinctUntilChanged()
.flatMap { venues ->
factory.getCacheDataStore()
.saveVenues(venues)
.andThen(Observable.just(venues))
}
我还有一个方法可以返回需要过滤的场馆列表
factory.getCacheDataStore().getDislikedVenues()
现在,我如何扩展前面的链,使用getDislikedVinces()observate从网络响应的响应中过滤它们?
很抱歉提出这样的问题,我真的很难回答。
这样做的一种方法是
factory.getCacheDataStore().getDislikedVenues()
.flatMap { dislikedItems ->
factory.getRemoteDataStore()
.searchForVenues(query)
.toObservable()
.distinctUntilChanged()
.flatMapIterable { it }
.filter { !dislikedItems.contains(it.id) }
.toList()
.toObservable()
}
.flatMap { venues ->
factory.getCacheDataStore()
.saveVenues(venues)
.andThen(Observable.just(venues))
}
P、 据我所知,工厂。getRemoteDataStore()。SearchForVinces(查询)返回单个或可能的。在这种情况下,distinctUntilChanged()不起作用,因为它依赖于多个发射(onNext()
),但单个或可能只能发射一个结果。
我有一个id列表,并且有一个方法,它接受id并返回可观察的 假设我有用户id(1),我需要使用此方法更新他的配置文件
问题内容: 给定汽车清单(),我可以这样做: 有没有办法我可以从一个到一个序列? 像没有参数的东西 问题答案: 您可以这样映射到: 请注意,flatMapping可能不会保留源可观察的顺序。如果订单对您很重要,请使用。
假设我有一个,它从网络获取数据并发出数据,如果我订阅这个observable,每次它试图从网络请求数据时,它会很重。 我想创建BehaviorSubject并将其连接到observableA,这样任何其他线程/对象都将订阅BehaviorSubject以获取最新发出的数据。 到目前为止,我还不能用它来编码。我不能创建空的BehaviorSubject并在observableA内调用,因为它们彼此不
我正在从事一个涉及Hystrix的项目,我决定使用RxJava。现在,忘记Hystrix的其余部分,因为我相信主要问题是我完全搞砸了正确编写可观察代码。 需要:我需要一种方法来返回一个代表多个可观察对象的可观察对象,每个可观察对象都运行一个用户任务。我希望该可观察对象能够返回任务的所有结果,甚至错误。 问题:可观测流会因错误而消亡。如果我有三个任务,而第二个任务引发了一个异常,那么即使第三个任务成
问题内容: 我正在尝试在JavaFX 8中创建一个,需要一个。我不知道如何创建一个……但是,如果我尝试: 我收到一个错误消息,说它无法实例化,因为它是抽象的。可以理解的 如果我查看该文档,可以看到,但是我做不到: 因为没有适用的构造函数。显然我需要传递给,这很奇怪,因为我无法创建。 我不确定如何解密。如果我尝试 出于绝望,我得到了一个更加复杂的错误。 也不起作用。它以某种方式起作用(但显然使用了不
给出一个汽车列表(