为什么需要异步编程
JavaScript 是单线程语言,网络请求、文件读写等耗时操作必须异步执行,否则界面会卡死。
回调地狱的问题
多层嵌套回调代码难以维护。
Promise 三态
- pending:进行中
- fulfilled:成功
- rejected:失败
fetch('/api/user').then(res => res.json()).then(data => console.log(data)).catch(err => console.error(err));async/await 语法糖
ES2017 引入,让异步代码看起来像同步:
async function loadUser() {
try {
const res = await fetch('/api/user');
const data = await res.json();
} catch (err) { console.error(err); }
}并行执行
多个独立请求用 Promise.all 并行。
常见陷阱
- 忘记 await 导致拿到 Promise 对象而非结果
- 循环中错误使用 await 导致串行执行
- 漏写 try/catch 导致未捕获异常
声明:本站文章均来源于原创、转载、AI生成等渠道,如有版权及其他问题,请点击反馈,我公司会尽快查实并处理。
