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).")
    }
}

更加详细的说明链接