如何解决应用“不返回等待”时,功能是否应该保持异步?
如果不需要使用return await
,该功能是否应该保留async
?
在异步函数中使用return return await保留当前函数 在调用堆栈中,直到等待的Promise 解决,以解决外部问题之前的额外微任务为代价 承诺
https://eslint.org/docs/rules/no-return-await
示例1
async function foo() {
return await bar();
}
示例2
async function foo() {
return bar();
}
示例3
function foo() {
return bar();
}
酒吧
async function bar() {
const data = await externalCall();
const result = anotherFunction(data);
return result;
}
如果第一个示例成为第二个示例,难道它不应该真正成为第三个示例吗?
解决方法
我不认为示例3与示例2相同。异步确保该函数返回一个Promise,并在其中包装非Promise。参见https://javascript.info/async-await#:~:text=Async%20functions&text=The%20word%20%E2%80%9Casync%E2%80%9D%20before%20a,wraps%20non%2Dpromises%20in%20it。
,是的,如果函数不返回等待状态,那么使用异步是没有意义的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。