GeekT
@GeekT
Основатель и генеральный директор "Пегий Дудочник"

Как передавать EventEmitter'ы между модулями в node?

Как передавать EventEmitter'ы между модулями в node?

Сталкиваюсь с ошибкой, мол, "obj.on is not a function".

file 1
const EventEmitter = require('events').EventEmitter;

module.exports = class Test extends EventEmitter {
    constructor() {
        super();
    }
    method() {
       this.emit('default', data);
}

file 2
let obj = new require('./file1');
    obj.on('default', function (data) {
        console.log(" ...default");
    });
    obj.method();
  • Вопрос задан
  • 330 просмотров
Решения вопроса 1
0xD34F
@0xD34F
let obj = new (require('./file1'));

Если без скобок вокруг вызова require, то получается, что new относится к require, а не к тому, что он возвращает. Конструктор не вызывается и obj оказывается не экземпляром Test'а, а самим Test'ом.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы