我有一个目标,可以通过一系列json文件进行映射,并将它们映射为对象并在node.js中返回它们,到目前为止,我有以下代码:
function getDirFiles(dataFolder) {
return new Promise((resolve, reject) => {
let fileNames = [];
fs.readdir(dataFolder, (err, files) => {
if (err) {
console.log(err);
reject(err);
} else {
files.forEach(file => {
fileNames.push(file);
});
resolve(fileNames);
}
});
});
}
let data = []
getDirFiles(dataFolder).then(files =>{
files.forEach(async file =>{
const fileName = __dirname + '/parsed_json_data' + '/' + file
await fs.readFile(fileName , 'utf8', async function(err, data){
if(err) throw err;
data = await JSON.parse(data);
})
})
})
console.log(data) //return empty array like it was initialized
因此,首先我返回一个promise,并调用.then()
来解析该函数,但是由于下一个操作也是异步的,因此我想在代码继续之前等待该操作。如何做到这一点,以便我可以从所有文件中返回json?