Promise核心机制
Promise 是 JavaScript 中处理异步操作的核心机制,其核心特性和工作原理如下:
一、核心特性
状态机制
包含三种不可逆状态:
pending
(等待)、fulfilled
(成功)、rejected
(失败)状态一旦变更即固定,不可回退
链式调用
通过
.then()
和.catch()
实现链式调用,解决回调地狱问题每个
.then()
返回新 Promise 对象,支持连续异步操作错误处理
通过
.catch()
统一捕获链式调用中的错误支持
reject
显式触发失败状态
二、执行机制
任务队列优先级
同步任务 > 微任务(Promise.then)> 宏任务(setTimeout)
Promise 回调属于微任务,优先于宏任务执行
创建与执行流程
new Promise((resolve, reject) => { // 异步操作 if (成功) resolve(value); else reject(error); }).then(onFulfilled, onRejected);
resolve
触发成功状态并执行.then
的第一个参数reject
触发失败状态并执行.then
的第二个参数或.catch
三、高级应用
静态方法
Promise.all()
:并行执行多个 Promise,全部成功时返回结果数组Promise.race()
:取最先完成的 Promise 结果与 Axios 结合
Axios 基于 Promise 封装 HTTP 请求,天然支持
.then()
和.catch()
处理响应可配合
async/await
实现同步化编码
四、设计优势
代码可读性:以同步方式编写异步逻辑,避免回调嵌套
错误隔离:链式调用中错误会穿透到最近的
.catch()
扩展性:支持与 Generator、async/await 等语法结合