2015-09-21 40 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

完全取決於你。我會插入額外的電話,讓你隨心所欲地做些事情。對於訂戶而言,您還可以根據自己的需要(也許只是爲了登錄?),爲新用戶 {}執行所需的方法。 –