no-return-await
禁止不必要的return await(不要等待)
在async function
里面,return await
没用。由于async function
总是包含返回值Promise.resolve
,除非在总体 Promise 解析或拒绝之前添加额外时间,否则实际上return await
不会执行任何操作。这种模式几乎肯定是因为程序员无视async function
的返回语义。
规则细节
这个规则旨在防止由于缺乏对async function
语义的理解而导致的可能的常见性能危害。
以下模式被视为警告:
async function foo() {
return await bar(
}
以下模式不是警告:
async function foo() {
return bar(
}
async function foo() {
await bar(
return;
}
async function foo() {
const x = await bar(
return x;
}
何时不使用它
如果你想用await
来表示一个值很高的值,即使它没有必要; 或者如果您不希望避免性能优势return await
,则可以关闭此规则。
进一步阅读
async function
on MDN
版本
规则在 ESLint 3.10.0 中引入。