eslint/require-await 吹毛求疵
作用
不允許沒有 await
表達式的 async 函式。
為什麼這不好?
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 的非同步函式可能不需要是非同步函式,可能是重構時的無意結果。
注意:此規則會忽略 async generator 函式。這是因為 generator 會 yield 而不是回傳值,而 async generator 可能會 yield 另一個 async generator 的所有值,而實際上不需要使用 await。
範例
此規則的不正確程式碼範例
js
async function foo() {
doSomething();
}
此規則的正確程式碼範例
js
async function foo() {
await doSomething();
}