【发布时间】:2020-06-23 06:57:52
【问题描述】:
fun returnValue(): Int {
viewModelScope.launch {
return 1 // Something like this
}
}
我想在上面的 viewModelScope 中返回一些值。我不希望我的功能被挂起。我如何做到这一点?
【问题讨论】:
-
“在 viewModelScope 中返回一些值”是什么意思?为什么你的函数不是简单的
return 1而不涉及任何launch? -
您可以使用 livedatascope 返回可以在您的活动/片段类中观察到的 livedata
-
我猜你也想吃蛋糕。不阻塞调用线程,而是直接从这个函数返回值。你不能这样做。您必须在
launch内进行可暂停的非阻塞计算,并在launch块内使用该计算的结果。这意味着您的回调将在您看到结果之前完成,您的应用程序必须接受它。
标签: android android-studio android-asynctask android-lifecycle kotlin-coroutines