Сегодня продолжу тему #советы
Задача
Есть два источника одних и тех же объектов. Например, база данных и сервер.
Данные, получаются из кэша БД быстрее, чем с сервера. Но актуальная информация на сервере. Хотим показать пользователю данные с кэша, а потом после прихода информации с сервера показать их.
Решение
Одним из рабочих вариантов - создание
Если не использовать Rx, то решение становится огромным куском кода.
В качестве альтернативы хочу предложить оператор
Читайте подробнее об операторе и изучайте исходный код.
Задача
Есть два источника одних и тех же объектов. Например, база данных и сервер.
Данные, получаются из кэша БД быстрее, чем с сервера. Но актуальная информация на сервере. Хотим показать пользователю данные с кэша, а потом после прихода информации с сервера показать их.
Решение
Одним из рабочих вариантов - создание
PublishSubject
, который подписывается на изменение данных, и в который попадает информация из каждого Observable
. Если не использовать Rx, то решение становится огромным куском кода.
В качестве альтернативы хочу предложить оператор
Observable.concatEager(observables)
. Он принимает список Observable
, который включает в себя получение данных из кэша и из сети. В результате получение будет запущенно параллельно, и вернутся данные из кэша, затем из сети. Важно помнить о порядке входящих источников. Читайте подробнее об операторе и изучайте исходный код.