【问题标题】:Sequential Observable Web Service and Database Query Call顺序 Observable Web 服务和数据库查询调用
【发布时间】:2015-09-21 07:07:35
【问题描述】:

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

【问题讨论】:

    标签: rx-java observable


    【解决方案1】:

    可以使用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);
    

    【讨论】:

    • 我需要在 databaseQueryObservable 和 NetworkCall 中订阅 onCompleted 吗?你可以给我一个例子吗?也是订阅者的实现。谢谢。
    • 完全由你决定。我会插入额外的电话,让你随心所欲地做事。就订阅者而言,您还可以执行 new Subscriber{} 并根据需要实现所需的方法(也许只是用于日志记录?)。
    猜你喜欢
    • 2017-04-10
    • 1970-01-01
    • 2015-02-25
    • 2012-11-20
    • 1970-01-01
    • 2017-09-13
    • 1970-01-01
    • 2011-01-27
    • 1970-01-01
    相关资源
    最近更新 更多