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

Promise.resolve(1)未绑定回调时是否涉及微任务队列?

Promise.resolve(1)(无回调绑定)是否涉及微任务?

场景说明

仅执行以下代码,未为返回的Promise绑定任何.then()或.catch()处理函数:

const v = Promise.resolve(1);

基于ECMA 2024规范的分析

根据规范中Promise.resolve及相关抽象操作的执行流程:

  1. Promise.resolve(x)的执行:当传入的x为原始值(此处为1,非对象),会调用内部的PromiseResolve抽象操作,创建新的Promise能力对象后,调用其resolve函数。
  2. Promise解析函数的逻辑:由于1不是对象,会进入解析函数的步骤8,直接执行FulfillPromise抽象操作。
  3. FulfillPromise的执行:该操作会将Promise状态置为fulfilled,并触发[[PromiseFulfillReactions]]中的回调——但此时这个Promise没有绑定任何回调,所以[[PromiseFulfillReactions]]为空,不会触发任何任务。
  4. 微任务触发的条件:规范中只有在处理thenable对象时,才会通过HostEnqueuePromiseJob将任务加入微任务队列。而此处处理的是原始值,完全不涉及该步骤。

结论

你的结论正确:仅执行const v = Promise.resolve(1);且未绑定任何回调时,不会涉及任何微任务队列的操作。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 04:57:26