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 抛出的错误,和同步代码的错误处理一致。
工作原理
- 在 async 函数内写
await promise对象 - 当前函数在此暂停,把控制权交还给事件循环
- Promise 完成后,函数从暂停处恢复,await 表达式返回结果
- Promise 失败时,await 抛出错误,用 try/catch 捕获
常见混淆
容易混淆的对象: async
关键区别: await 是“等待 Promise 完成”的运算符,async 是“声明函数是异步的”的关键字。await 必须在 async 函数内使用,两者配合使用。
相关术语
相关资源
相关课程
- 异步 JavaScript
await 让异步代码像同步一样直观
学习基础知识
通过结构化课程深入理解这个主题。
解读错误信息
用大白话解释常见错误——什么意思、为什么发生、如何修复。