Как отправить новый вызов в репозиторий из фрагмента только после завершения предыдущего вызова репозитория? - PullRequest
0 голосов
/ 07 мая 2020

Я пытаюсь реализовать то, что после удаления элемента из RecyclerView я хочу обновить RecyclerView данными fre sh из базы данных. поэтому, когда я пытаюсь следовать в моем фрагменте

cuttingUnitViewModel.deleteProjectUnit();
 //above operation is asynchronous at repository level, so below code may execute before above returns and we may get old data
            cuttingUnitViewModel.triggerReloadData.setValue("afterDelete");

Здесь TriggerReloadData - это просто триггер Livedata, который при изменении триггеров Transformation.switchMap

projectUnits = Transformations.switchMap(triggerReloadData, trigger -> cuttingListRepository.getProjectUnitsByProject(projectId.getValue()));

projectUnits наблюдается, и при изменении RecyclerViewAdapter обновляется .

Здесь я не получаю бесплатные sh данные, а удаленные данные все еще там. Он показывает только после refre sh или после операции удаления.

Я предполагаю, что это происходит из-за асинхронного характера операций удаления и обновления. Каким может быть правильный способ реализовать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...