У меня есть очень простой служебный скрипт, который я написал на 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.");
Для меня это намного проще для чтения и понимания, чем разновидность обратного вызова. Есть ли смысл использовать первый метод в этом случае?
Я понимаю, что скорость вообще не проблема с этим простым скриптом, который я запускаю локально, но мне интересно понять теорию, лежащую в его основе. Когда использование асинхронных методов помогает, а когда нет? Даже в производственном приложении, если я только читаю файл, а затем жду выполнения следующей задачи, есть ли смысл использовать асинхронный метод?