[英]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.