我想获得此程序的 ESLint 警告:
async function foo(){
return;
}
async function bar(){
foo(); // this is where I'd want the warning to occur
}
我想要这个警告的原因是,在
bar()
里面我可能想写await foo();
。因此,检查是任何语句都不应返回任何内容,或者返回非 Promise 的内容。我怎样才能让 ESLint 警告我这个问题?
一旦忘记添加
await
,我就会出现奇怪的(难以调试)行为。还有一次,我将一个函数更改为 async
函数,却错过了在调用站点添加 await
,再次导致不稳定的测试。我想确保我不会再次受到打击。
您正在寻找 require-await 规则。根据 eslint 文档:
此规则警告没有等待表达式的异步函数。
这是一个例子:
/*eslint require-await: "error"*/
async function foo() {
doSomething();
}
bar(async () => {
doSomething();
});
/*eslint require-await: "error"*/
async function foo() {
await doSomething();
}
bar(async () => {
await doSomething();
});
function baz() {
doSomething();
}
bar(() => {
doSomething();
});
// Allow empty functions.
async function noop() {}