I have this code which loops through all directories in the folder commands
and then loops through each file in each of those directories. It then imports the module, converts it to JSON and adds it to an array called commands
and a map called client.commands
.
let commands = [];
client.commands = new Map();
fs.readdir(__dirname + "/../commands/", (err, dirs) => {
if (err) return console.error(err);
for (let dir of dirs) {
fs.readdir(__dirname + `/../commands/${dir}/`, (err, files) => {
if (err) return console.error(err);
for (let file of files) {
let command = require(`../commands/${dir}/${file}`);
commands.push(command.data.toJSON());
client.commands.set(command.data.name, command);
console.log(commands);
}
});
}
});
console.log(commands);
If I console.log
the value of commands
in the inner most for loop, the output is exactly as expected. However, if I log it on the outside of the entire code block, it just prints an empty list.