如果您具有同步功能,如何将其转换为异步功能?
func syncFunc() -> Int {
//Do something
}
这项工作可以吗?
func asyncFunc(_ syncFunc:()->Int, _ completion:(Int)->()) -> Int {
DispatchQueue.background.async{
completion( syncFunc() )
}
}
答案 0 :(得分:2)
否,包含异步任务的函数不能从闭包主体返回任何值,并且两个闭包都必须标记为@escaping
func asyncFunc(_ syncFunc: @escaping ()->Int, completion: @escaping (Int)->()) {
DispatchQueue.global().async {
completion( syncFunc() )
}
}