使用Nodejs异步将值的总和写入另一个文件
Posted
技术标签:
【中文标题】使用Nodejs异步将值的总和写入另一个文件【英文标题】:Write the sum of the values in to another file using Nodejs asynchronously 【发布时间】:2019-05-11 18:04:42 【问题描述】:我有一个文件 readData.txt 有值 "10,20,30,40,50,........"
like this 我有数字。
现在我想将这些值的总和写入另一个名为 sumfile.txt 的文件中。我正在使用异步的 fs.readFile and fs.writeFile
函数。
我尝试过使用 Promises,它奏效了。但我很好奇我们可以在不使用 Promises 的情况下做到这一点。我正在尝试在没有 Promise 的情况下实现这一目标。
如果有人知道其他方法,我将不胜感激。
【问题讨论】:
使用承诺是...有希望的。它可以帮助您避免回调地狱。 谢谢@Lajos Arpad,问题是我只想更深入地挖掘 NodeJ。主要要求是我正在读取的那个文件中有数字,我想添加这些值,并且我想将该总和存储到另一个文件中,异步读写我不确定我将有多少数据在每次迭代中获取,那么除了 Promises 还有其他方法吗? 我已经给你提供了使用回调的例子,回调不是承诺。但是,它们也是异步的。您需要在异步操作之后实现您需要的逻辑来实现承诺或回调。这是要走的路,同步执行此操作是反模式,应避免。 是的,我有一个想法,非常感谢,非常感谢您的帮助:) 不客气。与此同时,我编辑了我的答案,为您提供有关如何同步执行此操作的信息。 【参考方案1】:可以使用fs.readFile
的回调参数:
fs.readFile('/etc/passwd', (err, data) =>
if (err) throw err;
console.log(data);
);
可以使用fs.writeFile
的回调参数:
const data = new Uint8Array(Buffer.from('Hello Node.js'));
fs.writeFile('message.txt', data, (err) =>
if (err) throw err;
console.log('The file has been saved!');
);
编辑
您也可以使用fs.readFileSync
同步执行此操作
fs.readFileSync('<directory>');
和fs.writeFileSync
但最好保持异步。一开始很难,但你所有的努力都会得到回报。
【讨论】:
以上是关于使用Nodejs异步将值的总和写入另一个文件的主要内容,如果未能解决你的问题,请参考以下文章