2015-09-21 35 views
1

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

回答

1

可以使用concat执行顺序操作。由于两个级联的观测量可以是不同类型ignoreElementscast可能是有用的:

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

我需要onCompleted内databaseQueryObservable和NetworkCall用户?你可以给我一个例子吗?也是用户实施。谢谢。 – Marvs

+0

完全取决于你。我会插入额外的电话,让你随心所欲地做些事情。对于订户而言,您还可以根据自己的需要(也许只是为了登录?),为新用户 {}执行所需的方法。 –