[英]return value from Kotlin async Coroutine
我想從這個從本地數據庫獲取數據的 function 返回值:
fun getAllTodo() : LiveData<List<TodoModel>>{
viewModelScope.launch(Dispatchers.IO) {
val data = async { getTodoFromDB() }
data.await()
}
}
suspend fun getTodoFromDB(): LiveData<List<TodoModel>> {
return database.getAll()
}
PS:我是 Coroutine 的新手,可能做了一些傻事。 期待 Android 社區幫助
無法從啟動的協程返回值。 如果getTodoFromDB()
返回LiveData
object 並且不是suspend
,只需嘗試在不啟動協程的情況下調用它:
fun getAllTodo(): LiveData<List<TodoModel>> = getTodoFromDB()
如果getTodoFromDB()
被suspend
,您可以使用liveData
builder function:
val allTodo: LiveData<List<TodoModel>> = liveData {
emitSource(getTodoFromDB())
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.