我在尝试跨多个模块导出/使用eventemitter时遇到了一些严重的麻烦。本质上,我希望将所有监听器和调用函数放在一个名为EventListen.js的模块中。接下来,例如我的Order.js模型,在我保存用户之后,我希望EventListen.js中的函数能够听到事件。我已经阅读了一些教程并尝试以一些不同的方式做到这一点,但没有太多运气......
/**** EventListen.js ****/
var EventEmitter = require('events').EventEmitter;
myeventmodule.on('newuser', function (user) {
console.log(user);
});
module.exports = myeventemitter;
/**** User.js or EventPublisher.js ****/
var myeventemitter = require('Eventlisten');
schema.post('save', function (user) {
myeventmodule.emit('newuser', user);
})
答案 0 :(得分:1)
var EventEmitter = require('events').EventEmitter;
module.exports = new EventEmitter();
exports.emitSomethingLater = function()
setTimeout(function() {
module.exports.emit('something');
}, 1000);
}