gpt4 book ai didi

javascript - NodeJS 中的多个 writeFile

转载 作者:数据小太阳 更新时间:2023-10-29 05:44:16 27 4
gpt4 key购买 nike

我的任务是将部分数据写入单独的文件:

        fs.writeFile('content/a.json', JSON.stringify(content.a, null, 4), function(err) {
if(err) {
console.log(err);
} else {
console.log('a.json was updated.');
}
});
fs.writeFile('content/b.json', JSON.stringify(content.b, null, 4), function(err) {
if(err) {
console.log(err);
} else {
console.log('b.json was updated.');
}
});
fs.writeFile('content/c.json', JSON.stringify(content.c, null, 4), function(err) {
if(err) {
console.log(err);
} else {
console.log('c.json was updated.');
}
});
fs.writeFile('content/d.json', JSON.stringify(content.d, null, 4), function(err) {
if(err) {
console.log(err);
} else {
console.log('d.json was updated.');
}
});

但是现在我有 4 个不同的回调,所以当所有 4 个任务都完成时,我无法得到时刻。是否可以并行 4 个 writeFile 调用并仅获得 1 个回调,当创建 4 个文件时将调用该回调?

附言

当然我可以这样做:

fs.writeFile('a.json', data, function(err) {
fs.writeFile('b.json', data, function(err) {
....
callback();
}
}

只是想知道有没有其他方法可以做到这一点。谢谢。

最佳答案

您可以使用 async模块。它还有助于清理代码:

var async = require('async');

async.each(['a', 'b', 'c', 'd'], function (file, callback) {

fs.writeFile('content/' + file + '.json', JSON.stringify(content[file], null, 4), function (err) {
if (err) {
console.log(err);
}
else {
console.log(file + '.json was updated.');
}

callback();
});

}, function (err) {

if (err) {
// One of the iterations produced an error.
// All processing will now stop.
console.log('A file failed to process');
}
else {
console.log('All files have been processed successfully');
}
});

关于javascript - NodeJS 中的多个 writeFile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26413329/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com