跳到内容

eslint/require-await 片面的

它所做的事情

禁止无 await 表达式的异步函数。

为什么这样做不好?

JavaScript 中的异步函数在两个关键方面与其他函数的行为不同。

  1. 返回的值始终是 Promise
  2. 你可以在其内部使用 await 运算符。

使用异步函数的主要原因通常是为了使用 await 运算符,如下所示

js
async function fetchData(processDataItem) {
  const response = await fetch(DATA_URL);
  const data = await response.json();

  return data.map(processDataItem);
}

不使用 await 的异步函数可能不需要成为异步函数,并且可能是重构造成的无意结果。

注意:此规则忽略异步生成器函数。这是因为生成器会 yield 而不是返回一个值,并且异步生成器可能 yield 另一个异步生成器的所有值,而无需实际上使用 await。

示例

此规则错误代码的示例

js
async function foo() {
  doSomething();
}

此规则正确代码的示例

js
async function foo() {
  await doSomething();
}

参考文献

MIT 许可证下发布。