Promise 全方位解析(图解+实战版)
Promise 全方位解析(图解+实战版)
一、核心概念三要素
Promise生命周期图
// 创建Promise实例
const promise = new Promise((resolve, reject) => {
// 异步操作(如API请求、定时器等)
if (success) {
resolve(value) // 状态变为fulfilled
} else {
reject(error) // 状态变为rejected
}
})
状态机模型
Pending(进行中) → Fulfilled(已成功)
↘ Rejected(已失败)
状态特性:
- 不可逆
- 不可修改
- 链式传播
二、核心方法详解
1. 基础方法链
promise
.then(value => {
/* 成功处理 */ })
.catch(error => {
/* 失败处理 */ })
.finally(() => {
/* 最终执行 */ })
2. 静态方法对比表
方法 | 参数要求 | 结果状态 | 典型场景 |
---|---|---|---|
Promise.all() | 全部成功 | 按顺序返回结果数组 | 并行处理多个异步任务 |
Promise.race() | 第一个完成 | 首个完成的结果 | 请求超时控制 |
Promise.allSettled() | 全部完成 | 包含状态的描述对象 | 需要知道所有请求结果 |
Promise.any() | 至少一个成功 | 首个成功的结果 | 多服务器请求择优 |