Promise.resolve()是最简洁返回已成功Promise的方式:传入普通值自动包装,传入Promise原样返回,传入thenable则按规范解析,比new Promise更轻量高效。

Promise.resolve() 是最简洁的方式,直接返回一个已成功(fulfilled)状态的 Promise。
传入普通值,自动包装成成功 Promise
只要给它一个非 Promise 的值(比如数字、字符串、对象),它会立即返回一个以该值为结果的成功 Promise:
-
Promise.resolve(42)→ 状态为 fulfilled,值为42 -
Promise.resolve("hello")→ 状态为 fulfilled,值为"hello" -
Promise.resolve({a: 1})→ 状态为 fulfilled,值为该对象
传入 Promise,原样返回(不重复包装)
如果传入的本来就是一个 Promise,Promise.resolve() 不会新建 Promise,而是直接返回它本身(但会确保它是“可 thenable”的):
-
const p = Promise.resolve(10); Promise.resolve(p) === p→true - 这避免了不必要的嵌套,也方便统一处理逻辑
传入 thenable 对象,尝试按 Promise 方式解析
如果传入的是带有 then 方法的对象(即 thenable),它会调用其 then 方法,并按 Promise 规范转换:
-
Promise.resolve({then(resolve) { resolve('ok') }})→ 返回一个 fulfilled 的 Promise,值为'ok' - 注意:不是所有带
then的对象都安全,要确保then符合 Promise A+ 规范
对比 new Promise(resolve => resolve(...)) 更轻量
不用写回调函数,没有执行器开销,也没有潜在的错误捕获逻辑,性能更好、代码更干净:
- ✅ 推荐:
Promise.resolve("done") - ❌ 不必要:
new Promise(resolve => resolve("done"))


















