async-await 是在 WWDC 2021 期间的 Swift 5.5 中的结构化并发变化的一部分。Swift中的并发性意味着允许多段代码同时运行。这是一个非常简化的描述,但它应该让你知道 Swift 中的并发性对你的应用程序的性能是多么重要。有了新的 async 方法和 await 语句,我们可以定义方法来进行异步工作。
async明确表明了一个方法执行异步操作。
await 是用于调用异步方法的关键字。await 跟async是一个组合,await始终等待async的回调。
//老代码
func fetchResult(_ value1: Int, _ value2: Int, completion: (Result<Int, Error>) -> Void) {
}
//使用了异步的新代码
func fetchResult(_ value1: Int, _ value2: Int) async throws -> Int {
let ret = value1 + value2
//假设小于10就返回错误
guard ret > 10 else {
throw ResultError.failed
}
return ret
}
func useAsyneAwait() async {
do {
let ret = try await fetchResult(5, 6)
print("Fetched result: \(ret).")
} catch {
print("Fetched err: \(error).")
}
}
更加详细的说明链接