Я хочу отправлять события из моего Nodejs модуля, но он не работает должным образом, так как мы получаем ошибку: Uncaught TypeError: Test.on(...) is not a function
.
Вот модуль test.js
var util = require("util");
var EventEmitter = require("events").EventEmitter;
function Test() {
EventEmitter.call(this);
}
Test.prototype.test = function (input) {
this.emit("testevent", input);
};
util.inherits(Test, EventEmitter);
module.exports = Test;
И в index.js
мы имеем следующее:
const Test = new (require('./test.js'));
Test.on('testevent', function (test) {
console.log('emitted', test);
});
// Test.test('input');
Я понимаю, что только с этим кодом в index.js
событие никогда не должно генерироваться, поскольку Test.test('input');
не вызывается.
Однако, когда эта строка отключена, я не понимаю, почему я получаю Uncaught TypeError: Test.on(...) is not a function
.
Ошибка исчезает, если Test.test('input');
не закомментировано, и, как я вижу, записанная строка выдает событие. Но почему? Почему выдает эту ошибку, если линия отключена? Что мы делаем не так?