Event-Loop Runtime

Событийной называется функция, немедленно возвращающая управление, возможно, еще до завершения затребованной от нее работы. Результат со временем будет сообщен через функцию обратного вызова или путем отправки сообщения, но не в виде немедленно возвращаемого значения.

Функцией обратного вызова является функция, которая будет вызвана в будущем, когда случится что-нибудь интересное, например:

  • поступит сообщение;

  • завершится какая-то работа;

  • человек станет общаться с программой;

  • датчик на что-то отреагирует;

  • истечет определенное время;

  • произойдет некий сбой.

В JavaScript используется один поток. Основная часть его жизненного состояния находится в замыкании его функций, а не в стеке.

Каждая итерация в цикле обработки называется ходом. У событийной модели тоже есть правило — закон ходов.

Не ждать. Не блокировать. Быстро завершать.

Закон ходов как прямо, так и косвенно применяется к функциям обратного вызова, вызываемым циклом обработки, и к каждой вызываемой ими функции. Функциям не разрешается зацикливаться в ожидании, что что-то произойдет. Функция не имеет права блокировать основной поток. В браузере такие функции, как alert, запрещены.

Last updated