解决async和swait使用过程中出现的报错
附上代码(错误写法):
附上代码(正确写法):
var fs = require(‘fs’);
var path = ‘./wwwroot’;
var dirArr = [];
//1、定义一个isDir的方法判断一个资源到底是目录还是文件
const { fstat } = require(“fs”);
async function isDir(path) {
return new Promise((resolve, reject) => {
fs.stat(path + ‘/’ + data[i], (err, stats) => {
if (err) {
console.log(err);
reject(err);
return;
}
if (stats.isDirectory()) {
resolve(true);
} else {
resolve(false);
}
})
})
}
//2、获取wwwroot里面的所有资源循环遍历
function main() {
fs.readdir(path,async (err,data)=>{
if(err){
console.log(err);
return;
}
for(var i=0;i<=data.length;i++){
if(await isDir(path+‘/’+data[i])){
dirArr.push(data[i]);
}
}
console.log(dirArr);
})
}
main();
解决方法:因为await()的外部方法必需是async()方法,如图所示: