async / await
一、是什么
async / await 是基于 Promise 的语法糖,用于简化异步代码。
二、为什么
让异步代码看起来像同步代码:
// Promise
fetch()
.then((res) => res.json())
.then((data) => console.log(data));
// async/await
const data = await fetch();
三、核心原理
-
async 返回 Promise
async function fn() { return 1; }等价于:
function fn() { return Promise.resolve(1); } -
await 本质
await 会:
- 暂停函数执行
- 等 Promise resolve
- 再继续执行
-
语法糖本质
async/await 本质是:
👉 Promise + Generator 的封装
四、使用示例
async function getData() {
try {
const res = await fetch('/api');
const data = await res.json();
console.log(data);
} catch (err) {
console.error(err);
}
}
五、总结
- async/await 是 Promise 的语法糖
- 本质仍是异步
- 推荐统一使用 try/catch