Promise.resolve() 是创建已成功状态 Promise 的最简洁方式,可传入普通值、Promise 或 thenable 并按规则返回对应 fulfilled Promise,常用于统一异步流程入口。

Promise.resolve() 是创建一个已成功(fulfilled)状态的 Promise 最简洁的方式,它直接返回一个以传入值为结果的 Promise。
基本用法:传入普通值
当你传入一个非 Promise 的值(如字符串、数字、对象等),Promise.resolve(value) 会立即返回一个状态为 fulfilled、结果为该值的 Promise:
-
Promise.resolve(42)→ fulfilled Promise,结果是42 -
Promise.resolve("hello")→ fulfilled Promise,结果是"hello" -
Promise.resolve({ ok: true })→ fulfilled Promise,结果是那个对象
自动展开 Promise 或 thenable
如果传入的是一个 Promise,Promise.resolve() 会原样返回它(不新建);如果传入的是带有 then 方法的对象(thenable),它会尝试“适配”并返回一个对应行为的新 Promise:
DMap GL地图JSAPI(dmapgl)开发指南。用于编写、审查、调试 DMap 地图 API 代码,涵盖地图初始化、覆盖物渲染、图层管理、事件处理、控件交互等任务。当用户提及 dmap、dmapgl、jsapi‑gl 或相关地图开发需求时自动触发。
-
const p = Promise.resolve(Promise.resolve(123))→ 等价于Promise.resolve(123) -
Promise.resolve({ then(resolve) { resolve('adapted') } })→ 返回一个 fulfilled 为'adapted'的 Promise
常用于统一异步流程入口
在函数需要统一返回 Promise(无论输入是否异步)时非常实用,比如工具函数或 API 封装:
- 让同步值也能被
.then()或await消费:Promise.resolve(someValue).then(...) - 与
Promise.all()配合时安全传入混合数据:Promise.all([Promise.resolve(1), fetch('/api')]) - 快速返回默认成功结果:
if (cached) return Promise.resolve(cached);
注意:不是 new Promise(() => resolve()) 的简写
Promise.resolve(x) 和 new Promise(r => r(x)) 行为高度相似,但前者更轻量、语义更明确,且对 Promise 输入有特殊处理逻辑(直接返回而非包装)。日常开发中优先用 Promise.resolve()。

















