Задать вопрос
@xenonhammer

В чем разница асинхронного и синхронного метода(nodejs javascript)?

Я что-то запутался в понятиях. Так как язык javascript событийный, то все выполняется синхронно, но чтобы дождаться выполнения, например, промиса, мы используем синтаксический сахар async/awayt - т.е. выполняем что-то асинхронно, а затем продолжаем выполнение скрипта.
Следовательно, что-то асинхронное приостанавливает выполнения остального скрипта.
И тут в nodejs:
fs.readFileSync
fs.readdirSync
В названии не Async, а Sync, и в документации написано, что это синхронные функции, но почему они тоже останавливают выполнение остальной части скрипта? Если они синхронные, я что-то не пойму?
  • Вопрос задан
  • 2199 просмотров
Подписаться 2 Простой 1 комментарий
Решения вопроса 1
DevMan
@DevMan
Следовательно, что-то асинхронное приостанавливает выполнения остального скрипта.
нет. именно для избежания этого и придумали асинхронщину.

а процесс тормозят блокирующие операции.
https://nodejs.org/ru/docs/guides/blocking-vs-non-...
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
kn1ght_t
@kn1ght_t
надо читать вам про event loop

смысл в том, что обычный синхронный код выполняется последовательно строчка за строчкой в основном потоке, а асинхронный код откладывается в очередь задач и выполняется после того, как выполнится синхронный код.

а эти fs.readFileSync и прочие содержат приписку Sync, как бы намекая, что эти методы могут быть долгими (например, большой файл читать надо) и весь остальной код их будет ждать, что не хорошо для серверного кода, с другой стороны вполне себе замечательно для служебных скриптов, когда ожидается, что такой скрипт будет запущен одним клиентом
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы