在promise中设置异步变量

我有一个目标,可以通过一系列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?

a8496558 回答:在promise中设置异步变量

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3072838.html

大家都在问