Это похоже на обычную медвежью ловушку для разработчиков, которые пытаются привыкнуть к четной модели программирования Node.
Что происходит так: вы попадаете в ситуацию, когда шаблон асинхронного / обратного вызова не подходит, вы понимаете, что вам нужен какой-то способ блокирования кода, вы спрашиваете Google / StackExchange о блокировке в Node, и все, что вы получите, это предупреждение о том, как плохо блокировать.
Они правы - блокировка («дождитесь результата этого, прежде чем делать что-либо еще»), это не то, что вы должны попытаться сделать в Node. Но то, что я считаю более полезным, это осознать, что в 99,9% случаев вы на самом деле не ищете способ сделать блокировку, вы просто ищете способ сделать свое приложение ", дождитесь результата этого прежде чем делать это ", что не совсем то же самое.
Попробуйте рассмотреть идею «управления потоком» в Node, а не «блокировать» некоторые шаблоны проектирования, которые могли бы более точно соответствовать тому, что вы пытаетесь сделать. Вот список библиотек для проверки:
https://github.com/joyent/node/wiki/modules#wiki-async-flow
Я тоже новичок в Node, но я действительно копаю Async: https://github.com/caolan/async