我正在将我的一些异步函数移至新的 Swift 并发机制。在某些时候,我使用完成处理程序将一个方法转换为一个同步方法DispatchGroup
(它看起来很奇怪,但这是因为我在一个中使用了这个方法Operation
):
func myMethodSync() -> String {
var result: String!
let group = DispatchGroup()
group.enter()
myMethod { asyncResult
result = asyncResult
group.leave()
}
group.wait()
return result
}
我想使用async
/做同样的事情await
。然而,当简单地转换代码时,我得到一个编译器错误:
并发执行代码中捕获的 var 'result' 的突变
有没有其他方法可以通过新的 API 实现这一点?