【发布时间】:2015-09-21 07:07:35
【问题描述】:
如何使用 RxJava Observable 实现顺序 Web 服务和数据库查询调用?第一次调用是数据库查询(缓存),然后显示结果(onNext 或 onCompleted),然后是网络调用,然后显示(替换)当前结果(缓存)。我正在使用 Volley 和监听器来显示数据。
【问题讨论】:
标签: rx-java observable
如何使用 RxJava Observable 实现顺序 Web 服务和数据库查询调用?第一次调用是数据库查询(缓存),然后显示结果(onNext 或 onCompleted),然后是网络调用,然后显示(替换)当前结果(缓存)。我正在使用 Volley 和监听器来显示数据。
【问题讨论】:
标签: rx-java observable
可以使用concat 实现顺序操作。因为两个连接的 Observable 可以是不同的类型,ignoreElements 和 cast 很有用:
databaseQueryObservable
.doOnNext(displayResult)
.doOnComplete(something)
.ignoreElements()
.cast(Object.class)
.concatWith(
networkCall
.doOnNext(displayNetworkCallResult)
.doOnComplete(somethingElse)
.ignoreElements()
.cast(Object.class)
).subscribe(onNextAction, onErrorAction, onCompletedAction);
【讨论】: