我有一个Javascript async / await设计问题。
想象一下这个功能存在:
async function readFile(filename) {
// Asynchronously reads file and returns the content as string
}
现在,如果我将readFile
与某个参数一起使用并返回其结果,我可以这样做:
async function readSettings1() {
const settings = await readFile("settings.json");
return settings;
}
或:
async function readSettings2() {
return readFile("settings.json");
}
我理解这两种方法的工作方式类似,必须以相同的方式调用。他们都回报了Promises。有几个句法差异:
readSettings1
首先解析readFile
的值,然后返回硬结果。这里,关键字async
用于函数定义,因此我可以使用await
。
readSettings2
真的只是一个直通。实际上,我可以从此函数定义中省略async
。
我的问题是:readSettings1
和readSettings2
之间是否存在语义差异?他们的行为方式有何不同?你喜欢哪种风格?为什么?你有没有看过推荐一种风格而另一种风格的文档?