【发布时间】:2020-10-20 04:46:53
【问题描述】:
我需要在异步回调中返回一个值。该值是作为 websocket 确认异步获取的,在检索到该值之前,我无法找到阻止该回调执行的方法...我尝试了所有协程组合均无济于事。
override fun someAsyncCallback() : String
{
var myAsyncValue = ""
socket.emit(event = "someEvent", callback = { result ->
//This is an asynchronous callback
myAsyncValue = result
})
//Insert way to wait for the async value to be set
return myAsyncValue
}
【问题讨论】:
-
这个函数可以是挂起函数吗?你用的是哪个网络库?
-
@Tenfour04 它不能是挂起函数,因为需要从协程中调用,并且顶层回调不在协程中运行。我正在使用 socket.io。
标签: android kotlin concurrency socket.io kotlin-coroutines