为何在内部调用异步函数时,需将外层函数声明为async?
为什么要将readFileAsync声明为async函数?
- 语法强制要求:JavaScript的语法规则明确规定,
await关键字只能在被async标记的函数内部使用。如果函数里用了await却不加async,代码在解析阶段就会直接抛出语法错误,根本无法执行。 - 统一异步返回格式:
async函数会自动把函数的返回值(哪怕没有显式返回内容)包装成一个Promise对象。这样调用readFileAsync()时,你可以继续用.then()或者await来衔接后续的异步逻辑,比如:readFileAsync().then(() => console.log('文件读取流程结束')); - 适配同步风格的错误处理:你代码里用
try/catch来捕获文件读取的错误,这种同步风格的错误处理只能在async函数里配合await使用。如果不用async,你只能通过Promise的.catch()方法来捕获错误,代码风格会变得割裂,可读性也会下降。
内容的提问来源于stack exchange,提问作者pratik neupane
相关产品推荐
相关产品推荐

