Я предполагаю, что Node.js постоянно прослушивает события и асинхронно обрабатывает код слушателя при каждом событии.
Я попытался определить пользовательское событие с помощью модуля 'events', который генерируется вручную в скрипте.
var events = require('events');
var myEmitter = new events.EventEmitter();
myEmitter.on('someEvent', function(msg){
console.log(msg);
});
myEmitter.emit('someEvent', 'the event is emitted');
Когда я запускаю приведенный выше скрипт, процесс завершается после обработки события только один раз. Откуда Node.js знает, что не будет больше событий, которые могут быть запущены в будущем? Я видел, что server.listen () модуля 'http' непрерывно прослушивает входящие соединения и не завершает работу после получения первого соединения. Почему мой код не ведет себя так же?
Или, другими словами, как я могу определить события, которые являются асинхронными и прослушиваются непрерывно?
РЕДАКТИРОВАТЬ: Я также хотел бы знать, как события, которые происходят непредсказуемо (например, нажатия кнопок браузера, сервер получает соединение и т. Д.), Работают под капотом, так что программа работает непрерывно, без завершения.