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

如何用ESLint检测未加await的async函数调用并告警?

如何用ESLint检测未使用await调用async函数的情况?

你需要的是检测未处理的Promise调用(包括async函数返回的Promise),ESLint有现成的规则可以实现这个需求:

方案1:使用ESLint核心规则 no-unused-promise

从ESLint v8.0.0开始,核心规则中包含no-unused-promise,专门用于检测未被使用或处理的Promise。

在你的ESLint配置文件(如.eslintrc.json、.eslintrc.js)中添加规则配置:

{
  "rules": {
    "no-unused-promise": "warn"
  }
}

方案2:使用 eslint-plugin-promise 插件的 no-floating-promises 规则

如果你的ESLint版本较低,或者更习惯使用这个社区插件,可以按以下步骤配置:

  1. 先安装插件:
npm install eslint-plugin-promise --save-dev
  1. 在ESLint配置文件中启用插件并设置规则:
{
  "plugins": ["promise"],
  "rules": {
    "promise/no-floating-promises": "warn"
  }
}

规则效果

以上两种规则都会在你调用async函数但未使用await、未通过.then()/.catch()处理,也未将Promise赋值给变量后续处理时触发警告。比如你示例中的foo()调用,就会被检测到并提示警告,完美覆盖你之前遗漏await导致的问题场景。

特殊情况忽略

如果有个别场景你确实不需要处理Promise,可以通过单行注释临时禁用规则:

// eslint-disable-next-line promise/no-floating-promises
foo();

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 12:56:04