我有一个非常简单的实用程序脚本,我用 JavaScript 为 node.js 编写了它,它读取一个文件,进行一些计算,然后写入一个输出文件。当前形式的源代码如下所示:
fs.readFile(inputPath, function (err, data) {
if (err) throw err;
// do something with the data
fs.writeFile(outputPath, output, function (err) {
if (err) throw err;
console.log("File successfully written.");
});
});
这很好用,但我想知道在这种情况下使用这些函数的同步种类是否有任何缺点,如下所示:
var data = fs.readFileSync(inputPath);
// do something with the data
fs.writeFileSync(outputPath, output);
console.log("File successfully written.");
对我来说,这比回调类型更容易阅读和理解。在这种情况下是否有任何理由使用前一种方法?
我意识到对于我在本地运行的这个简单脚本,速度根本不是问题,但我有兴趣了解它背后的理论。什么时候使用异步方法有帮助,什么时候没有?即使在生产应用程序中,如果我只是读取一个文件,然后等待执行下一个任务,是否有任何理由使用异步方法?