Promise 多请求 finally 链式调用避坑指南

背景介绍
常见误区与踩坑经历
在异步编程中,Promise 是处理异步操作的核心方案。早期开发者常因嵌套回调导致代码难以维护(Callback Hell)。例如,多个接口依赖调用时,若未正确处理状态流转,极易出现数据获取失败或流程中断的问题。
Promise 在现代开发中的地位
尽管 async/await 语法糖流行,但 Promise 仍是底层基础。主流库如 axios、fetch 及框架响应式系统均基于 Promise 实现。理解其原理有助于排查复杂异步错误。
学习收益
掌握 Promise 可解决以下场景:
- 页面初始化多接口并行加载
- 文件上传进度控制
- 接口超时自动重试
- 统一清理 loading 状态
Promise 基础概念
Promise 定义与原理
Promise 对象代表一个异步操作的最终完成或失败。它包含三种状态:Pending(进行中)、Fulfilled(已成功)、Rejected(已失败)。状态一旦改变便不可逆。
const myPromise = new Promise((resolve, reject) => {
const score = Math.random() > 0.5 ? 95 : 58;
if (score >= 90) {
resolve('考试通过');
} else {
reject('考试失败');
}
});
myPromise
.then(result => console.log(result))
.catch(error => console.error(error));
状态流转机制
创建时默认为 Pending。调用 resolve 转为 Fulfilled,调用 reject 转为 Rejected。若未调用任一方法,Promise 将永久 Pending。


