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

向Promise的resolve()传入自身会触发TypeError拒绝?求示例代码

Promise resolve传入自身触发TypeError的问题解答

触发错误的条件

当你在新创建的Promise的执行器函数中,调用resolve()时传入这个Promise实例本身,就会触发TypeError,导致Promise被拒绝。简单说就是:不能让一个Promise自己解析自己,这会造成循环引用的逻辑矛盾。

复现代码示例

const myPromise = new Promise((resolve) => {
  // 传入当前创建的Promise实例myPromise,触发错误
  resolve(myPromise);
});

// 捕获并打印错误
myPromise.catch(err => {
  console.log(err);
  // 控制台输出:TypeError: Chaining cycle detected for promise #<Promise>
});

为什么会有这个限制

这种规则是为了避免无限循环的Promise链——如果允许Promise解析自身,这个Promise永远无法进入最终的完成或拒绝状态,会导致逻辑死锁,所以JS引擎直接抛出错误终止这种无效操作。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.12 16:44:56