В каких случаях использование fs.openSync предпочтительней fs.promise.open (и не только)?
В каких случаях синхронные функции модуля fs предпочтительней асинхронным?
fs.openSync vs fs.promise.open
fs.readSync vs fs.promise.read
и т.д.
В случае с сервером - понятно. А в случае с обычными утилитами - нет.
Например, читаю файл построчно и строки заношу в бд тоже по очереди.
По времени выполнения утилита на чтение файла работает с fs.*Sync быстрей.
Но совершенно не имею представления, что для подобной функции лучше и какие подводные камни могут быть.
Да и не только с подобным примером, вообще в принципе хотелось бы понимать, что когда fs.*Sync применять, а когда нет.
Асинхронные функции всегда предпочтительнее — они, как вы написали, не блокируют поток, а значит поток не будет простаивать. Когда вам не важно время выполнения (например, в консольных утилитах), можно пренебречь скоростью и использовать синхронные функции — их банально проще читать глазами и проще выстраивать логические последовательности.
Кроме читабельности у синхронных функций нет преимуществ.