推荐答案
-- -------------------- ---- ------- ----- -------- ----------- - --- - ----- -------- - ----- -------------------------------------- ----- ---- - ----- ---------------- ------------------ - ----- ------- - -------------------- -------- ------- ------- - - ------------
本题详细解读
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
链,使代码更加简洁和易读。