You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

async-await模式两种实现差异及无需async/await的原因

执行差异

案例A的getFolders和getUserProfile是async函数,内部通过await等待fetchData返回的Promise完成,再把解析后的结果作为自身async函数的Promise结果返回;案例B则直接返回fetchData生成的Promise对象。

两者最终的运行逻辑几乎完全一致,但案例A多了一层不必要的Promise包装:async函数会自动把await fetchData(...)的结果重新包裹成一个新的Promise,而案例B直接复用fetchData原本的Promise。不过这层额外包装在绝大多数业务场景下不会影响代码功能,只是多了一个无意义的Promise处理步骤。

补充问题解答

因为fetchData本身就是async函数,它的返回值已经是一个Promise对象。案例B里的两个函数直接返回这个Promise,调用方无论是用await还是.then()处理,都能得到和案例A完全一样的结果——毕竟案例A里的await fetchData(...)本质上也是等待这个Promise完成,再通过async函数的Promise把结果传递出去。

简单来说:如果函数只是单纯返回一个Promise,不需要在内部用await执行其他异步操作,那完全没必要加async关键字,直接返回Promise即可,效果和加了async/await的写法完全一致。


内容的提问来源于stack exchange,提问作者Byeongin Yoon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.03 06:17:26