如何在方法外获取数组值

时间:2018-07-09 18:08:36

标签: javascript node.js

我已经编写了一种读取所有文件名并将其传递给数组的方法。它可以正确读取并推送到数组,如果我打印出它显示所有值的话。

但是,如果我尝试在方法外打印数组,则显示为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打印为空。如何获得所有值的

1 个答案:

答案 0 :(得分:0)

这是因为fs.readdir是异步的,因此在控制台中打印数组时尚未填充该数组。如果您等到读取完成,它将按预期运行!

如果将log语句移到readdir回调中,也可以。

您可以尝试readdirsync来获取同步调用,例如

let files = fs.readdirSync(testFolder);
console.log (files);