[英]Should a function be async if it does not use await
考慮一個 javascript function,它本質上是另一個異步 function 的包裝器。 包裝 function 本身是否必須是異步的,即使它確實需要等待底層 promise?
這是一個簡單的例子:
function myWrapperFunction() {
console.log('Calling myAsyncFunction')
return myAsyncFunction();
}
async function myAsyncFunction() {
const url = 'URL'
const data = await fetch(url)
return JSON.parse(data)
}
myWrapperFunction
應該是async
嗎? 我猜它不需要給出它只是從myAsyncFunction
。 但是,es-lint 的no-return-await
規則的正確代碼部分中的第一個示例另有提示: https://eslint.org/docs/rules/no-return-await
謝謝!
我會這樣寫:
function myWrapperFunction() {
console.log('Calling myAsyncFunction')
const promise = myAsyncFunction();
return promise;
}
以提高代碼的可維護性。 例如,確保其他人不需要問自己返回 Promise 是否是故意的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.