gpt4 book ai didi

android - 协程 : Can't return value after finish work

转载 作者:行者123 更新时间:2023-11-29 23:05:57 27 4
gpt4 key购买 nike

在我的 android 应用程序中,我需要在执行一些长时间的网络操作后返回结果(例如 10 秒后)

此处摘录:

import kotlinx.coroutines.Deferred
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch

GlobalScope.launch(Dispatchers.Main) {
lateinit var response: Response<Void>
response = executeOperations.await()
return response
}

但是我在这一行遇到了编译错误:

return response

错误信息:

'return' is not allowed here

最佳答案

不是这样的。你的 return 在那里是不允许的,因为你在 { }

上的 coroutine context

但实际上最好的方法是创建一些方法并处理该响应而不是返回它。关于你的情况,我有点困惑:

转换:

GlobalScope.launch(Dispatchers.Main) {
lateinit var response: Response<Void>
response = executeOperations.await()
return response
}

进入:

GlobalScope.launch(Dispatchers.IO) {
lateinit var response: Response<Void>
response = executeOperations.await()
withContext(Dispatchers.Main){
handleResponse(response)
}
}

另外,您的繁重工作不能发生在 Dispatchers.Main 中,而是发生在 Dispatchers.IO

关于android - 协程 : Can't return value after finish work,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56564066/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com