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

咨询:ESLint no-useless-return为何判定Promise中reject后的return无用

问题解答

你这里的return被ESLint的no-useless-return规则判定为无用,核心原因是在这个setTimeout的回调函数里,reject()之后已经没有任何后续代码需要执行了。

你提到的“Promise拒绝后代码仍会继续执行”是对的——reject()只是改变Promise的状态,并不会直接终止当前函数的执行。但在你的这段代码里,reject()之后紧接着就是return,而return之后没有任何其他语句需要跳过。也就是说,有没有这个return,函数都会在执行完reject()后自然结束,所以这个return完全是多余的。

举个对比场景,如果回调函数里reject()之后还有其他代码,那return就有实际作用了:

setTimeout(() => {
  reject();
  // 此时return会跳过后续代码
  console.log('这段代码不会执行');
  return;
}, 5000);

但你的代码里不存在这种情况,reject()之后没有任何后续逻辑,因此这个return没有任何实际意义,ESLint规则会标记它为无用。

额外说明:resolve和reject都是普通函数,调用它们不会像return那样终止函数执行,只有当后续存在需要跳过的代码时,才需要在调用它们之后加return。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 03:22:42