У меня есть класс репозитория с асинхронным методом, возвращающим User
, завернутый в LiveData
:
interface Repository {
fun getUser(): LiveData<User>
}
В сопроводительной области ViewModel я хочу дождаться результата метода getUser()
и используйте экземпляр User
.
это то, что я ищу:
private fun process() = viewModelScope.launch {
val user = repository.getUser().await()
// do something with a user instance
}
Я не смог найти метод расширения LiveData<>.await()
и любые попытки его реализовать. Поэтому, прежде чем делать это самому, я задаюсь вопросом, может быть, есть способ лучше?
Все решения, которые я нашел, касались создания метода getUser()
a suspend
, но что, если я не могу изменить Repository
?