如何使用 async/await 来处理异步操作?

推荐答案

-- -------------------- ---- -------
----- -------- ----------- -
    --- -
        ----- -------- - ----- --------------------------------------
        ----- ---- - ----- ----------------
        ------------------
    - ----- ------- -
        -------------------- -------- ------- -------
    -
-

------------

本题详细解读

1. async 关键字

async 关键字用于声明一个异步函数。它使得函数内部可以使用 await 关键字来等待异步操作的完成。async 函数总是返回一个 Promise 对象,即使函数内部没有显式地返回 Promise

2. await 关键字

await 关键字用于等待一个 Promise 对象的解析。它只能在 async 函数内部使用。await 会暂停 async 函数的执行,直到 Promise 被解析或拒绝。如果 Promise 被解析,await 表达式的值就是 Promise 的解析值;如果 Promise 被拒绝,await 会抛出异常。

3. 错误处理

async 函数中,可以使用 try...catch 语句来捕获和处理 await 表达式可能抛出的异常。这使得异步代码的错误处理更加直观和易于管理。

4. 示例解析

在示例代码中,fetchData 函数使用 await 来等待 fetch 请求的完成,并进一步等待 response.json() 的解析。如果其中任何一个步骤失败,catch 块会捕获并处理错误。

5. 使用场景

async/await 适用于需要顺序执行多个异步操作的场景,例如:

  • 从多个 API 获取数据
  • 数据库操作
  • 文件读写操作

通过 async/await,可以避免回调地狱(Callback Hell)和复杂的 Promise 链,使代码更加简洁和易读。

纠错
反馈