Позволяет себе представить асинхронную функцию, которая сначала загружает файл, а затем выполняет асинхронно с ним. Функция не может продолжаться без файла, так что мое предположение, что загрузка этого файла может быть сделано синхронно (*):Влияние функции синхронизации внутри асинхронных функций
const asyncFnWithSyncCode(filePath, next) {
// Load file
const file = fs.readFileSync(filePath)
// Continue to process file with async functions
// ...
next(null, processedFile)
}
asyncFnWithSyncCode
можно было бы назвать несколько раз для различных файлов:
async.parallel([
(done) => { asyncFnWithSyncCode('a.json', done) },
(done) => { asyncFnWithSyncCode('b.json', done) },
(done) => { asyncFnWithSyncCode('c.json', done) }
], next)
Мой вопрос: как это влияет на производительность? Будет ли синхронизирующая функция задерживать другие readFileSync
? Будет ли это иметь влияние вообще?
Наилучшие практики, ресурсы и мнения приветствуются. Благодаря!
(*) Я знаю, что могу просто использовать async readFile
-version, но мне очень хотелось бы знать, как это работает в этой специальной конструкции.
Очень хорошо объяснено. Большое спасибо! – tobi