【发布时间】:2018-07-15 19:19:25
【问题描述】:
我是 javascript 新手,并试图了解 Async 和 Await。 这是我编写的代码,它尝试从文件中读取,如果找不到文件,它会拒绝。
async function getFileAsString(path) {
if (!path) {
throw "you need to give a path!"
}
const fileContent = await fileCheck(path);
console.log(fileContent)
}
var fileCheck = function(path) {
return new Promise(function(resolve, reject) {
if (fs.readFileAsync(path, "utf-8")) {
resolve("File found!")
} else {
reject("File not found!!")
}
})
}
我收到一条错误消息,提示“TypeError:fileCheck 在异步和等待期间不是函数。我无法找出原因。有人可以帮我解决这个问题吗? 谢谢。
【问题讨论】:
-
而
fileCheck的使用方式... -
函数赋值声明没有提升到作用域的顶部,因此是未定义的。
-
fileCheck 用于检查路径是否存在。如果它解决了,否则它会拒绝
-
var fileCheck = function应该是async function fileCheck吧? -
首先:没有
readFileAsync,看看docs。为什么你认为可以将异步代码放在 if 语句中并获得有意义的结果? Promise 是一个对象 abd 因此总是真实的,您的 fileCheck 将在文件实际检查之前很久就解决。
标签: javascript asynchronous async-await