node 防止在没有等待的情况下意外调用异步函数

问题描述 投票:0回答:2

是否有节点或 vscode 功能可以防止我意外忘记使用 wait 调用异步函数?我已经这样做过几次了,但总是花费我几个小时来寻找错误。

node.js async-await
2个回答
4
投票

有一个 ESlint 规则,它会警告没有等待表达式的异步函数。

编辑: 您需要创建“.eslintrc.json”文件并向其添加一些规则。如果您全局安装了 ESLint,则可以通过运行

eslint --init
来完成。您可以在 vscode 插件 github 存储库中找到更多信息。

async/await 相关的可用规则有:

  • no-await-in-loop - 不允许在循环内等待
  • no-return-await - 禁止不必要的返回等待
  • require-await - 禁止没有await 表达式的异步函数

您可以在官方文档页面找到有关 ESLint 和可用规则的更多信息。


0
投票

这对于 Javascript 或正常的 ESLint 规则来说是不可能的,因为 ESLint 无法知道表达式的类型,因此无法知道什么时候是 Promise(不执行代码)。

如果您使用 TypeScript,则可以使用 no-misused-promises

这是一个特别有用的示例:

const promise = Promise.resolve(false);

if (promise) {
  // Do something
}

缺少await会导致if总是发生。

© www.soinside.com 2019 - 2024. All rights reserved.