🌐 什么是 Promise?
Promise 是 JavaScript 中处理异步操作的核心对象,它封装了异步操作的最终结果。
✅ 三个状态:
- Pending(等待中):初始状态,既没有被解决也没有被拒绝
- Fulfilled(已解决):操作成功完成
- Rejected(已拒绝):操作失败
🧠 Promise 的核心特性
- 链式调用:通过
.then()
和.catch()
链式处理异步结果 - 避免回调地狱:用 Promise 替代多层嵌套的回调函数
- 状态不可逆:一旦从
Pending
转为Fulfilled
或Rejected
,状态将永久锁定
📚 示例代码
fetch('https://api.example.com/data')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('请求失败:', error));
⚠️ 常见误区与解决方案
误区 | 解决方案 |
---|---|
重复调用 .then() |
使用 .catch() 统一处理错误 |
忘记处理错误 | 始终在链式调用末尾添加 .catch() |
混淆 Promise 与回调 | 明确区分异步操作与同步逻辑 |
🔄 与 async/await 的对比
特性 | Promise | async/await |
---|---|---|
错误处理 | 需要 .catch() |
使用 try/catch |
可读性 | 链式调用可能复杂 | 同步风格代码更直观 |
混合使用 | 支持嵌套 | 需要 await 关键字 |
📚 扩展阅读
想进一步了解如何用 async/await
简化异步代码?
👉 深入解析 async/await 为你揭秘更优雅的写法!