2016-09-09 6 views
0

В нашем приложении у нас есть два асинхронных метода, которые обрабатывают полученное сообщение и обновленное сообщение. Мы получаем их с сервера правильно: сначала просто сообщение, а затем обновленное сообщение. Они обрабатываются по-разному, но в конце они приходят как для обновления сообщения в базе данных. Проблема в том, что иногда обновляемое сообщение может обрабатываться быстрее, чем сообщение, поэтому данные будут неправильно записаны в базу данных. Обновленное сообщение будет перезаписано старым сообщением.Для Android RX требуется синхронное выполнение двух разных процессов

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

ответ

1
messageApi.getMessage() 
    .flatMap(message -> { 
     saveMessage(message); 
     return messageApi.getUpdatedMessage(); 
    }) 
    .subscribe(message -> { 
     saveMessage(message); 
    }); 

Уместно ли для вашего случая?

Смежные вопросы