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

如何在此场景下规避ESLint的no-promise-executor-return错误?

解决no-promise-executor-return规则报错的sleep函数写法

你的sleep函数触发了ESLint的no-promise-executor-return规则,原因是箭头函数形式的Promise执行器隐式返回了setTimeout的返回值(定时器ID,一个数字),而该规则禁止Promise执行器返回非undefined的值。

以下是几种可行的修复方案:

方案1:显式返回undefined

在执行器函数里添加空的return语句,确保执行器返回undefined:

export function sleep(ms: number): Promise<void> {
  return new Promise<void>((resolve) => {
    setTimeout(resolve, ms);
    return;
  });
}

方案2:使用void忽略返回值

用void关键字包裹setTimeout调用,强制表达式返回undefined:

export function sleep(ms: number): Promise<void> {
  return new Promise<void>((resolve) => void setTimeout(resolve, ms));
}

方案3:改用普通函数作为执行器

普通函数不会隐式返回表达式结果,也能规避问题:

export function sleep(ms: number): Promise<void> {
  return new Promise<void>(function(resolve) {
    setTimeout(resolve, ms);
  });
}

这些写法都能满足no-promise-executor-return规则的要求,同时保留sleep函数的原有功能。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 08:33:13