promise.resolve() 创建已成功promise,可包装普通值、thenable或已有promise;promise.reject() 创建已失败promise,直接将参数作为reason,不解析。

Promise.resolve() 和 Promise.reject() 是创建已定型(settled)Promise实例最直接的方式:一个立刻成功,一个立刻失败。
Promise.resolve():快速得到一个 fulfilled 的 Promise
它把任意值包装成一个已成功的 Promise。传入的值会成为该 Promise 的 value。
- 传普通值(如字符串、数字、对象)→ 返回 fulfilled 状态的 Promise,value 就是该值
- 传一个 thenable 对象(含
then方法)→ 返回 Promise,但会“跟随”它的状态(即等待它 resolve 或 reject) - 传一个已 resolve 或已 reject 的 Promise → 直接返回它本身(不新建)
例如:Promise.resolve(42) 等价于 new Promise(r => r(42));Promise.resolve(Promise.resolve("ok")) 就是原 Promise。
Promise.reject():快速得到一个 rejected 的 Promise
它总是返回一个已失败的 Promise,参数就是 rejection reason。
Java JDK 25 来自 OpenJDK 官方归档,版本为 JDK 25,本条下载地址已指向官方 Windows x64 zip 安装包直链,适合调试旧项目或兼容旧版 Java 运行环境。
- 传任何值(包括 undefined、null、Promise 实例)→ 都直接作为 reason,不会被“展平”或“跟随”
- 即使传入一个已 resolve 的 Promise,它也不会变成 fulfilled,而是原样作为 reason 被 reject
例如:Promise.reject("error") 等价于 new Promise((r, j) => j("error"));Promise.reject(Promise.resolve(123)) 的 reason 就是那个 Promise 实例本身。
常见误用提醒
别把 Promise.resolve 当作“确保 Promise”的万能函数——它对 thenable 的处理可能带来意外异步行为;而 Promise.reject 不会尝试解析传入值,这点和 resolve 不对称,需特别注意。
不复杂但容易忽略。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










