You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ECMAScript中已决议Promise[[PromiseResult]]匹配入参对象的规范位置查询

对应规范位置说明

你所问的「传入不带then属性的普通对象」场景,对应你给出的resolve函数执行流程的第9步~第12步a分支,我们可以结合你的两个示例对应走一遍流程:

第一个示例(传入字符串"hello")

入参是原始类型,非Object类型,走到第8步时直接触发8a分支FulfillPromise(promise, resolution),用原始值兑现Promise,流程结束。

第二个示例(传入普通对象{a: 100})

入参是Object类型,不会触发第8步分支,后续执行流程如下:

  • 执行第9步:对{a: 100}执行Get操作取then属性,因为该对象自身和原型链上都没有then属性,Get操作返回正常完成记录,值为undefined
  • 执行第10步:Get操作不是突发完成,不触发 reject 分支
  • 执行第11步:拿到thenAction的值为undefined
  • 执行第12步:判断IsCallable(undefined)结果为false,触发12a分支FulfillPromise(promise, resolution),直接用该普通对象兑现Promise,不会走后续的thenable异步处理逻辑。

内容的提问来源于stack exchange,提问作者MaximPro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 15:00:01