eslint/require-await 片面的
它所做的事情
禁止无 await
表达式的异步函数。
为什么这样做不好?
JavaScript 中的异步函数在两个关键方面与其他函数的行为不同。
- 返回的值始终是
Promise
。 - 你可以在其内部使用
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();
}