Источник событий — это класс 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")

Вот объяснение кода:

  1. Код начинается с импорта класса EventEmitter из модуля «события».
  2. Затем он определяет новый класс MyEmitter, который расширяет класс EventEmitter. Этот пользовательский класс будет действовать как генератор событий.
  3. Экземпляр MyEmitter создается и сохраняется в переменной myEmitter.
  4. Затем код регистрирует прослушиватель событий в экземпляре myEmitter, используя метод on. Событие для прослушивания называется «вода». При возникновении этого события будет выполнена указанная функция обратного вызова.
  5. Функция обратного вызова, связанная с событием «вода», просто выводит на консоль два сообщения. В первом сообщении говорится «пожалуйста, включи двигатель», что указывает на то, что двигатель должен быть включен. Второе сообщение регистрируется после задержки в 2000 миллисекунд (2 секунды) с использованием setTimeout. Пишет: «Пожалуйста, выключите двигатель, если бак полный».
  6. После настройки прослушивателя событий код выводит на консоль сообщение «этот скрипт работает».
  7. Наконец, событие «вода» генерируется явно с помощью myEmitter.emit("water"). Когда эта строка выполняется, она запускает событие «вода», которое, в свою очередь, выполняет соответствующую функцию обратного вызова. Это запишет сообщения на консоль, как описано в шаге 5.