2
为了简单起见,我创建了一些小文件来测试这个想法。基本上我正在寻找一种方式来发射和事件中的模块,然后有一个拿起回到主文件例如跨模块共享事件
这就是所谓的运行应用程序
main.js主文件
var test = require('./test')
var emitter = require('./emitter')
var emit = new emitter()
emit.on('response', function(data) {
console.log(data)
})
这是在事件被触发
fire.js
var emitter = require('./emitter')
var emit = new emitter
var Test = function() {
emit.sendEvent('response', 'test')
}
module.exports = Test
下面是创建以处理事件发射的应用
emitter.js模块
var util = require('util')
var eventEmitter = require('events').EventEmitter
function Event() {
eventEmitter.call(this)
}
util.inherits(Event, eventEmitter)
Event.prototype.sendEvent = function(type, data) {
this.emit(type, data)
}
module.exports = Event
如在emitter.js
我把它安装到能够被视为发出包括解析数据的任何自定义类型。
我似乎无法在最初的main.js
文件中找到它。但是,如果我将emit.sendEvent('response', 'banana')
放置在文件底部的main.js
中,它会被上面的侦听器拾取。这将表明我的emitter.js
工作正常。
任何关于为什么fire.js
发出的事件没有被拿起的想法会很好。
非常感谢您,我一直在为此奋斗了几天,感觉这与每次实例化对象有关,意味着没有继承。 –