async/await是Promise+Generator的语法糖,用同步写法表达异步逻辑;async函数自动返回Promise,await暂停执行并让出控制权至微任务队列,需注意作用域限制、错误处理及并行优化。

画 async/await 核心知识点思维导图,关键不是堆砌术语,而是理清“谁依赖谁、谁触发谁、谁影响执行顺序”。下面按实用逻辑分层组织,可直接转为思维导图主干与分支:
一、基础定位:async/await 是什么
它不是新机制,而是语法糖——底层靠 Promise + Generator 协程能力实现。
核心目标:用同步写法表达异步逻辑,解决 .then() 链式嵌套带来的语义断裂问题。
二、两个关键字的本质行为
- async 函数:自动返回 Promise;内部 return 值被 Promise.resolve() 包裹,throw 错误被 Promise.reject() 包裹
- await 表达式:只能出现在 async 函数内;暂停当前函数执行(不阻塞主线程),等待右侧 Promise settle 后继续;本质是“让出控制权,等微任务完成再恢复”
三、执行顺序的关键锚点:事件循环配合
await 不是“卡住线程”,而是把后续代码推入微任务队列。
典型节奏:同步代码 → 遇 await → 暂停,让出控制权 → 执行完当前宏任务 → 清空微任务队列(含 await 后的代码)→ 继续下一个宏任务。
四、常见陷阱与对应画法建议
- 错误地在顶层或普通函数里写 await → 思维导图中单独标红“作用域限制”分支
- 忘记 try/catch 包裹 await → 导致未捕获异常变成 rejected Promise → 放在“错误处理”子节点,强调它不能用同步 try/catch 外层捕获
- 多个 await 串行写导致性能浪费 → 引出并行方案:Promise.all() / allSettled() → 作为“优化策略”平行分支


















