resolve 是 Promise 构造函数执行器函数的第一个参数,用于将 Promise 状态由 pending 变为 fulfilled 并传递值;可传入普通值、Promise 或 thenable 对象,但只能首次调用生效。

在 JavaScript 中,resolve 方法本身不是直接调用的独立函数,而是由 Promise 构造函数内部传入执行器(executor)函数的**第一个参数**。它用于将当前 Promise 的状态从 pending(等待中)变为 fulfilled(成功),并携带一个值(可以是任意类型,包括 Promise)。
resolve 是 executor 函数的第一个参数
当你创建一个新 Promise 时,需传入一个执行器函数,该函数接收两个参数:resolve 和 reject。其中 resolve 就是用来“兑现”这个 Promise 的:
-
resolve(value):把 Promise 状态设为成功,并把value作为后续.then()的参数 - 如果传入的是另一个 Promise(如
resolve(otherPromise)),当前 Promise 会等待它完成,并继承其结果或失败原因
基本用法示例
下面是最常见的写法:
setTimeout(() => {
resolve("操作成功"); // ✅ 触发 fulfilled 状态
}, 1000);
});
p.then(result => console.log(result)); // 1秒后输出:"操作成功"
resolve 可以传入不同类型的值
resolve 接收的值决定了 Promise 成功后的结果:
- 普通值(字符串、数字、对象等):直接作为
.then()的参数 - 另一个 Promise:当前 Promise 会“跟随”它——等它 settled 后,用它的结果或错误
- 带有
then方法的对象(thenable):也会被当作 Promise 处理(遵循 Promise A+ 规范)
常见误区提醒
注意几个容易出错的地方:
- 不要手动定义
resolve函数——它是 Promise 自动注入的,你只负责调用 - 不能在 Promise 外部访问
resolve,它只在 executor 内有效 - 多次调用
resolve或先resolve后reject,只有第一次生效(Promise 状态不可逆)


















