🔍 一句话总结:
async/await的出现,是为了更方便、更清晰地写异步代码,代替以前繁琐的.then().catch()回调地狱。
🎯 async/await 的目的
| ✅ 目标 | 📖 说明 |
|---|---|
| 📚 让异步代码写起来像同步 | 写法更直观,逻辑清晰 |
| 🧼 消灭回调地狱 | 不用层层嵌套 .then(),结构干净 |
| 🐞 更好地捕获错误 | 可以配合 try/catch 做同步风格的异常处理 |
| 🔄 更适合循环/判断等流程控制 | 比如 for 循环中顺序请求多个接口 |
⚠️ 看下对比:
👎 使用 Promise + then:
fetchData()
.then(res => {
return processData(res)
})
.then(final => {
console.log(final)
})
.catch(err => {
console.error(err)
})
👍 使用 async/await:
try {
const res = await fetchData()
const final = await processData(res)
console.log(final)
} catch (err) {
console.error(err)
}
是不是清晰很多?👀
📌 注意几点:
- 只能在
async函数里用await await后面跟的是一个 Promise- 不会阻塞整个线程,只是让当前函数挂起等待,不会卡页面
🧠 总结一句话:
async/await是让异步代码更接近“人类语言”的一种语法糖,本质还是 Promise,但用起来比.then()舒服太多了 💡