Skip to content

await

一句话解释

await 是在 async 函数内使用的运算符,暂停当前函数执行、等待 Promise 完成、返回其结果。

用大白话说

await 用在 async 函数里,作用是“等这个 Promise 完成,把结果给我”。它让异步代码读起来像同步代码——一行执行完再执行下一行。

async function example() {
  const a = await fetchA();  // 等 A 完成
  const b = await fetchB();  // 再等 B 完成
  return a + b;
}

await 的关键点:

  • 只能在 async 函数里用(顶层 await 是 ES2022 的新特性)
  • 它不会阻塞整个程序,只暂停当前 async 函数,其他代码照常跑
  • 等的是 Promise:如果 await 的不是 Promise,会自动包装成 Promise
  • 失败会抛异常:await 的 Promise 被 reject 时,会 throw,需要 try/catch 捕获

await 把“等异步结果再继续”这件事写得直观,是现代 JS 异步编程的主力工具。

示例

javascript
async function loadUser() {
  try {
    const res = await fetch("/api/user");
    const user = await res.json();
    console.log(user);
  } catch (err) {
    console.error("加载失败", err);
  }
}

await 让代码像同步一样顺序执行。用 try/catch 捕获 await 抛出的错误,和同步代码的错误处理一致。

工作原理

  1. 在 async 函数内写 await promise对象
  2. 当前函数在此暂停,把控制权交还给事件循环
  3. Promise 完成后,函数从暂停处恢复,await 表达式返回结果
  4. Promise 失败时,await 抛出错误,用 try/catch 捕获

常见混淆

  • 容易混淆的对象: async

    关键区别: await 是“等待 Promise 完成”的运算符,async 是“声明函数是异步的”的关键字。await 必须在 async 函数内使用,两者配合使用。

相关术语

相关资源

相关课程

学习基础知识

通过结构化课程深入理解这个主题。

查看课程

解读错误信息

用大白话解释常见错误——什么意思、为什么发生、如何修复。

查看错误

← 返回术语表