如何在 async 函数中使用 await?

推荐答案

async 函数中使用 await 的语法如下:

解释:

  • async 关键字用于声明一个异步函数,该函数会自动返回一个 Promise
  • await 关键字用于等待一个 Promise 完成并返回其结果。它只能在 async 函数内部使用。
  • 如果 await 后面的 Promise 被拒绝(rejected),则会抛出异常,可以使用 try...catch 来捕获异常。

本题详细解读

1. async 函数

async 函数是 ES2017 引入的语法糖,用于简化异步操作。它使得异步代码看起来像同步代码,但实际上是基于 Promise 的。

  • async 函数总是返回一个 Promise。如果函数返回一个值,Promise 将被解析为该值;如果函数抛出异常,Promise 将被拒绝。

2. await 关键字

await 关键字用于暂停 async 函数的执行,直到 Promise 完成(resolved 或 rejected)。

  • await 只能在 async 函数内部使用。
  • 如果 await 后面的 Promise 被拒绝,await 会抛出异常,可以使用 try...catch 来捕获。

3. 错误处理

async 函数中,可以使用 try...catch 来捕获 await 表达式中可能抛出的错误。

  • 如果 fetchData 返回的 Promise 被拒绝,catch 块会捕获错误并处理。

4. 并行执行多个异步操作

如果需要并行执行多个异步操作,可以使用 Promise.all

  • Promise.all 接受一个 Promise 数组,并返回一个新的 Promise,该 Promise 在所有 Promise 都完成时解析为一个结果数组。

5. 注意事项

  • await 只能在 async 函数中使用,否则会抛出语法错误。
  • await 会阻塞 async 函数的执行,直到 Promise 完成,但不会阻塞整个 JavaScript 线程。
纠错
反馈