我已经编写了一种读取所有文件名并将其传递给数组的方法。它可以正确读取并推送到数组,如果我打印出它显示所有值的话。
但是,如果我尝试在方法外打印数组,则显示为null。谁能帮我在外面打印吗?
const testFolder = '../features/';
const fs1 = require('fs');
let a = [];
fs1.readdir(testFolder, (err, files) => {
files.forEach(file => {
a.push(file);
});
})
console.log(a);
现在a打印为空。如何获得所有值的
答案 0 :(得分:0)
这是因为fs.readdir是异步的,因此在控制台中打印数组时尚未填充该数组。如果您等到读取完成,它将按预期运行!
如果将log语句移到readdir回调中,也可以。
您可以尝试readdirsync来获取同步调用,例如
let files = fs.readdirSync(testFolder);
console.log (files);