顺序可观察 Web 服务和数据库查询调用

Sequential Observable Web Service and Database Query Call

如何使用 RxJava Observable 实现顺序 Web 服务和数据库查询调用?首先调用是数据库查询(缓存)然后显示结果(onNext 或 onCompleted),然后是网络调用然后显示(替换)当前结果(缓存)。我正在使用带有侦听器的 Volley 来显示数据。

可以使用 concat 实现顺序操作。因为两个串联的 Observable 可以是不同的类型 ignoreElementscast 是有用的:

databaseQueryObservable
    .doOnNext(displayResult)
    .doOnComplete(something)
    .ignoreElements()
    .cast(Object.class)
    .concatWith(
        networkCall
            .doOnNext(displayNetworkCallResult)
            .doOnComplete(somethingElse)
            .ignoreElements()
            .cast(Object.class)
    ).subscribe(onNextAction, onErrorAction, onCompletedAction);