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
發出的事件沒有被拿起的想法會很好。
非常感謝您,我一直在爲此奮鬥了幾天,感覺這與每次實例化對象有關,意味着沒有繼承。 –