async/await 是 JavaScript 中基于 Promise 的异步语法糖,使异步代码更直观;async 函数自动返回 Promise,await 在其内部暂停执行并等待 Promise 完成,需用 try/catch 捕获错误,支持串行与并行控制,但不改变异步本质。

async/await 是 JavaScript 中处理异步操作的语法糖,它让基于 Promise 的异步代码写起来像同步代码一样直观,大幅降低回调嵌套和错误处理的复杂度。
async 函数:自动返回 Promise 的函数
在函数声明前加 async 关键字,该函数就变成异步函数。它会自动把返回值包装成 Promise;即使你 return 一个普通值(比如 return 42),也会等价于 Promise.resolve(42)。如果函数中抛出错误,则等价于 Promise.reject(error)。
- 不能直接用
await在普通函数或全局作用域中 —— 必须在async函数内部使用 -
async函数本身不执行异步操作,只是提供await的执行环境
await:暂停执行,等待 Promise 完成
await 只能在 async 函数中使用,它会让 JS 引擎“暂停”当前函数的执行(实际是让出线程,不阻塞主线程),直到右侧的 Promise 被 fulfilled 或 rejected。之后继续执行后续语句。
-
const data = await fetch('/api/user').then(res => res.json())→ 简洁写法:const response = await fetch('/api/user'); const data = await response.json(); - await 后面不一定是 Promise,也可以是任意值:非 Promise 值会被自动转为
Promise.resolve(value) - 错误需用 try/catch 捕获,因为 rejected 的 Promise 会以异常形式抛出
对比传统 Promise 链,更清晰的错误处理与流程控制
以前用 .then().catch() 容易出现“错误被吞掉”或多个 catch 分散的问题;而 async/await 把逻辑收束在统一的 try/catch 块里,条件分支、循环、重试逻辑也更容易组织。
标签: javascript java js json ai 作用域
还木有评论哦,快来抢沙发吧~