我如何跟踪循环的下一次迭代,直到实现承诺?

时间:2019-07-02 03:54:54

标签: javascript

我基本上是使用Node.js编写一个.json文件,为此我想根据我的"n"编写一个新文件aArray次,但是我的问题是它总是显示最后位置(third.json)。只要创建文件,有什么办法可以继续进行下一个迭代?

我想要的输出是使用数组名称创建每个.json文件

first.json
second.json
third.json

aData={ ..... }
var aArray=["first.json","second.json","third.json"];
for(var i in aArray){
    fs.writeFile(aArray[i], JSON.stringify(aData, null, 4), 'utf8', function (err) {
      if (err) {
        console.log("An error occured while writing JSON Object to File.");
        console.log(err);
        resolve(true);
      }
       resolve(true);
      console.log("JSON file has been saved.");
    });    
}

1 个答案:

答案 0 :(得分:0)

您可以使用writeFileSync。

aData={ ..... }
var aArray=["first.json","second.json","third.json"];
for(var i in aArray) {
  fs.writeFileSync(aArray[i], JSON.stringify(aData, null, 4), 'utf8')
}

文档:https://nodejs.org/api/fs.html#fs_fs_writefilesync_file_data_options

编辑: 如果您想学习新东西,请尝试

aData={ ..... }
var aArray=["first.json","second.json","third.json"];
var recurringFunc = function() {
  if (aArray.length) {
    var fileName = aArray.shift();
    fs.writeFile(fileName, JSON.stringify(aData, null, 4), 'utf8', function (err) {
      if (err) {
        console.log('An error occured while writing JSON Object to File - ' + fileName);
        console.log(err);
      } else {
        console.log(fileName + 'file has been saved.');
      }
      recurringFunc();
    }
  }
}

recurringFunc();