Javascript-форум (https://javascript.ru/forum/)
-   Node.JS (https://javascript.ru/forum/node-js-io-js/)
-   -   Помогите ПЛИЗ новичку с EventEmitter (https://javascript.ru/forum/node-js-io-js/78284-pomogite-pliz-novichku-s-eventemitter.html)

Иса Мирзоев 20.08.2019 21:50

Помогите ПЛИЗ новичку с EventEmitter
 
Здравствуйте. Недавно изучаю Node.js. Просьба объяснить построчно, что происходит на каждой строке кода. Проблемы вызывает .emit и .on, из документации я не разобрался, что они делают. То, что со стандартным js связано, вроде как я уловил.

const EventEmitter = require("events") //цепляемся к модулю events
class Logger extends EventEmitter{ //наследование нового класса от того, к чему мы "прицепились" строчкой выше
    log(message) // объект log, который является "ключом" к функции и названием функции одновременно
    {this.emit("message", `${message} ${Date.now()}`)} // Не понятно 
    }
    
    const logger = new Logger() //переменная из класса, тут понятно
    
    
    logger.on("message", data=>{ //Тут тоже не понял, к чему слово "message", а дальше вроде ясно: указываем, что будет выводится в 
    //консоль инфа, которую задаем строкой ниже
        console.log(data)
    } )
    logger.log("Прослушано") //обращаемся к функции из второй строки для выводного сообщения

Иса Мирзоев 20.08.2019 23:38

Значит .on добавляет событие, а .emit его вызывает. Становится яснее. Потыкал попроще события и заработало. Просто в курсе, по которому я учу Node был вот этот слегка накрученный код (лично для меня, плохо знающего ES6). Попробую, спс. Вроде прояснилось))

Иса Мирзоев 21.08.2019 00:11

Спасибо, гляну) А зачем наследоваться? Нельзя везде использовать один и тот же модуль, вместо того, чтобы свойства модуля наследовать в классы и работать с классами? Я пока только 1 причину вижу - в наследуемый класс можно вставлять свой функционал, дополнительный плюс к унаследованному. Хотя по идее через прототип можно и в первоначальный модуль добавить требуемый функционал. Смысла не вижу в общем в наследовании на этом этапе моего понимания языка(


Часовой пояс GMT +3, время: 04:08.