Swift 面试题
目录

Swift 中 async/await 的用法?

· 约 2 分钟读完 · 第 134 / 196 章

推荐答案

本题详细解读

1. async 关键字

async 关键字用于标记一个函数或方法为异步函数。异步函数可以在执行过程中暂停,等待异步操作完成后再继续执行。异步函数通常用于执行耗时操作,如网络请求、文件读写等。

2. await 关键字

await 关键字用于在异步函数中等待一个异步操作的结果。当遇到 await 时,当前函数会暂停执行,直到异步操作完成并返回结果。await 只能在 async 函数中使用。

3. Task 结构体

Task 是 Swift 中用于管理并发任务的结构体。通过 Task,可以在非异步上下文中启动一个异步任务。Task 提供了多种初始化方法,允许你以不同的方式执行异步代码。

4. 错误处理

在异步函数中,错误处理与同步函数类似。可以使用 do-catch 语句来捕获和处理异步操作中可能抛出的错误。在上面的示例中,fetchData 函数标记为 throws,表示它可能会抛出错误。在调用时,使用 try await 来捕获可能的错误。

5. 示例代码解析

  • fetchData 函数是一个异步函数,它使用 URLSession 发起一个网络请求,并返回获取到的数据。
  • Task 用于在非异步上下文中启动 fetchData 函数的执行。
  • 在 Task 中,使用 do-catch 语句来处理可能的错误,并在成功获取数据后打印结果。

通过这种方式,Swift 的 async/await 语法使得异步代码的编写和理解变得更加直观和简洁。