Eslint
规则 | Rules

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 中引入。

资源