跳至主要内容

await-thenable

禁止等待非 Thenable 值。

💡

此规则报告的一些问题可以通过编辑器 建议 手动修复。

💭

此规则需要 类型信息 才能运行。

“Thenable” 值是一个具有 then 方法的对象,例如 Promise。await 关键字通常用于检索调用 Thenable 的 then 方法的结果。

如果 await 关键字用于非 Thenable 值,则该值将立即直接解析。虽然这样做是有效的 JavaScript,但它通常是程序员错误,例如忘记添加括号来调用返回 Promise 的函数。

.eslintrc.cjs
module.exports = {
"rules": {
"@typescript-eslint/await-thenable": "error"
}
};

在游乐场中尝试此规则 ↗

示例

await 'value';

const createValue = () => 'value';
await createValue();
在游乐场中打开

选项

此规则不可配置。

何时不使用它

如果您想允许代码 await 非 Promise 值。例如,如果您的框架正在从一种异步代码风格过渡到另一种风格,那么包含不必要的 await 可能有用。这通常不是首选,但有时对于视觉一致性可能有用。您可以考虑使用 ESLint 禁用注释 来处理这些特定情况,而不是完全禁用此规则。


类型检查的 lint 规则比传统的 lint 规则更强大,但也需要配置 类型检查的 lint。如果您在启用类型检查规则后遇到性能下降,请参阅 性能故障排除

资源