файлы записываются все сразу на первой же итерации
Что неудивительно, ведь fs.writeFile - асинхронная функция. Используйте
синхронную, или можете написать обёртку, возвращающую Promise, либо самостоятельно:
const writeFile = (name, data) => new Promise((resolve, reject) => {
fs.writeFile(name, data, function(err) {
if (err) {
reject(err);
} else {
resolve();
}
});
});
Либо с использованием
util.promisify:
const writeFile = require('util').promisify(fs.writeFile);
И использовать её вместе с await'ом:
for (let i = 0; i < iterations; i++) {
await writeFile(`data${i}.txt`, JSON.stringify(obj[i], null, 2));
}