@xenonhammer

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

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

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

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

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

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

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