此问题已在此处有答案:
Returning data from async call in Swift function(13个回答)
关闭7天前。
我有一个函数,让我们称之为“a”,它运行一些代码,然后返回一个字符串“x”,在异步代码块中更新,然后返回。
我该如何让程序等到异步代码运行后才返回x?
func a() -> String {
//code
//code
var x: String
async block {
x = "test"
}
return x
}
2条答案
按热度按时间jogvjijk1#
就像每个人指出的那样,您可以使用完成处理程序(
closure
)来执行操作。但是您也可以使用DispatchSemaphore
等待异步调用完成。信号量在调用wait
时获得一个锁,在异步块发出信号时释放该锁。j7dteeu82#
您可以为此使用完成闭包
//像这样调用(value将在完成块返回时执行