@procode
Разработчик

Каким именно кодом я могу заблокировать поток вывода в Node.js?

Я пытаюсь на примерах понять зачем нужна вся эта асинхронность в Node.js.

В справочниках пишут что она нужна чтобы вывод в Node не блокировался.

А как именно я могу его заблокировать например?

И как потом я могу решить эту проблему сделав код асинхронным?

Можно самый простейший пример?

Заранее спасибо.
  • Вопрос задан
  • 820 просмотров
Решения вопроса 1
@procode Автор вопроса
Разработчик
Нагуглил я ответ))

https://habr.com/ru/post/150788/

Добрый человек не поленился описать суть проблемы с примерами кода.

Респект и уважуха))
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
Xuxicheta
@Xuxicheta
инженер
Читаешь например файл с помощью readFileSync с какой-нибудь тормозной файловой системы, а в это время тебе еще тыщу запросов приходит, а нода занята, она ждет файл.
А мог бы использовать readFile, и пока файл где-то там открывается, нода запросы бы успела обработать.
Любой запрос к внешним ресурсам должен быть асинхронной.
Так же тяжелые вычисления (огромные циклы например) нужно разбивать на вызов коллбэков (setImmediate), чтобы обработались какие-то текущие операции в промежутках.
Ответ написан
Комментировать
@cubit
Разнопрограммист
Не знаю про блокировку потока вывода, но знаю, что если в вашем синхронном коде есть операции типа чтения с БД, запись файла куда-то на жесткий диск, сетевые всякие операции, то рекомендуют использовать асинхронный код.
Те самые операции могут затормозить выполнение всего кода, заставляя простаивать процессор.
Асинхронность и нужна, чтобы, например, при записи файла на жесткий диск процессор не простаивал, ожидая конца записи того самого файла, а выполнял какой-то код.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы