Показать сообщение отдельно
  #25 (permalink)  
Старый 04.09.2011, 15:18
Отправить личное сообщение для Андрей Параничев Посмотреть профиль Найти все сообщения от Андрей Параничев
 
Регистрация: 21.02.2008
Сообщений: 1,250

dmitriymar,
Цитата:
принципе-сначала отрабатывает код потом работает очередь
Ну если этот пример конкретный рассматривать, то возможно вы и правы, но представьте себе, что первым событием будет applicationReady, внутри обработчика этого события будут генерироваться новые события, которые будут зависеть от каких-то данных, будут вызваны новые события и это уже не будет банальным примером очереди (хотя по сути событийная модель и является очередью в первую очередь, простите за тавтологию).

Да и даже в этом примере не гарантируется последовательная очередь выполнения обработчиков, они могут быть выполнены в произвольном порядке.

Те же события DOM обрабатываются идентично тому, как обрабатывается событие в примере, на самом деле.
Именно в том, что обработчик будет вызван "между" вызовами других обработчиков и заключается асинхронность.
Если в клиентском коде это не так очевидно, то в Node.js, где главный источник множества событий это web-сервер, это просматривается куда лучше. Поскольку после вызова emit из моего примера может быть обработан другой клиент, например.

Последний раз редактировалось Андрей Параничев, 04.09.2011 в 15:23.
Ответить с цитированием