Источник событий — это класс node.js, который включает в себя все объекты, способные генерировать события.
Он вызывается с именем, используя eventEmitter.on()
const EventEmitter=require('events') class MyEmitter extends EventEmitter{} const myEmitter=new MyEmitter(); myEmitter.on("water",()=>{ console.log("please on the motor") setTimeout(() => { console.log("please turn off the motor if tank is full") }, 2000); }) console.log("this script is work") myEmitter.emit("water")
Вот объяснение кода:
- Код начинается с импорта класса
EventEmitter
из модуля «события». - Затем он определяет новый класс
MyEmitter
, который расширяет классEventEmitter
. Этот пользовательский класс будет действовать как генератор событий. - Экземпляр
MyEmitter
создается и сохраняется в переменнойmyEmitter
. - Затем код регистрирует прослушиватель событий в экземпляре
myEmitter
, используя методon
. Событие для прослушивания называется «вода». При возникновении этого события будет выполнена указанная функция обратного вызова. - Функция обратного вызова, связанная с событием «вода», просто выводит на консоль два сообщения. В первом сообщении говорится «пожалуйста, включи двигатель», что указывает на то, что двигатель должен быть включен. Второе сообщение регистрируется после задержки в 2000 миллисекунд (2 секунды) с использованием
setTimeout
. Пишет: «Пожалуйста, выключите двигатель, если бак полный». - После настройки прослушивателя событий код выводит на консоль сообщение «этот скрипт работает».
- Наконец, событие «вода» генерируется явно с помощью
myEmitter.emit("water")
. Когда эта строка выполняется, она запускает событие «вода», которое, в свою очередь, выполняет соответствующую функцию обратного вызова. Это запишет сообщения на консоль, как описано в шаге 5.