我有一个带有异步方法的存储库类,返回User包装成一个LiveData:
interface Repository {
fun getUser(): LiveData<User>
}
Run Code Online (Sandbox Code Playgroud)
在 ViewModel 的 couotine 范围中,我想等待getUser()方法的结果并使用User实例。
这就是,我正在寻找:
private fun process() = viewModelScope.launch {
val user = repository.getUser().await()
// do something with a user instance
}
Run Code Online (Sandbox Code Playgroud)
我找不到LiveData<>.await()扩展方法,以及任何实现它的尝试。所以在我自己做之前,我想知道也许有更好的方法吗?
我发现所有的解决方案都有关使getUser()一个suspend方法,但如果我不能改变什么Repository?