2015-02-26 5 views
3

Как выполнить два наблюдаемых последовательно и перезаписать один результат другим в цепочке rxjava?Как выполнить два наблюдаемых последовательно?

Например, у меня есть data1 = observableFromDb и data2 = observableFromServer;

Я хотел бы объединить их в цепочку и переписать данные1 по результату data2.

+0

Использование 'SERIAL_EXECUTOR' для выполнения задач по одному. Но работает для Api 11 или выше – Apurva

+0

Не могли бы вы пояснить «перезаписать»? Если вы хотите перезаписать data1, зачем его извлекать? – zsxwing

+0

@zsxwing конечная цель - показать фактические данные с сервера (перезаписать кэшированные данные в базе данных по данным сервера), я чувствую, что могу сделать это с помощью такого метода: извлечь данные из базы данных (кэш) и показать его пользователю, а затем извлечь данные из сервер и показать фактические данные пользователю (переписать). – lman

ответ

3

Это то, что CONCAT оператор делает - это выполняет последовательно данный Наблюдаемые - еще Наблюдаемые не начнется, пока предыдущая не получает завершил

Observable.concat(dataBaseObservable, networkRequestObservable) 
      .subscribe(Data -> { 
       // do something with data 
      }); 
Смежные вопросы