Der Einfachheit halber habe ich einige kleine Dateien erstellt, um die Idee zu testen. Im Grunde bin ich für eine Art und Weise auf einem Modul haben zu emittieren und Ereignis suchen, dann gepflückt, dass bis zurück in die Hauptdatei zum BeispielEreignis über Module hinweg teilen
Dies ist die Hauptdatei enthält die App
main.js laufen
var test = require('./test')
var emitter = require('./emitter')
var emit = new emitter()
emit.on('response', function(data) {
console.log(data)
})
Dies ist, wo das Ereignis
abgefeuert wirdfire.js
var emitter = require('./emitter')
var emit = new emitter
var Test = function() {
emit.sendEvent('response', 'test')
}
module.exports = Test
Hier ist das Modul erstellt das Abfeuern von Veranstaltungen für die Anwendung zu handhaben
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
Wie in den emitter.js
ich es Setup in der Lage sein zu sehen Geben Sie einen benutzerdefinierten Typ einschließlich der analysierten Daten aus.
Ich kann nicht scheinen, dies in der ursprünglichen main.js
Datei abzuholen. Wenn ich jedoch emit.sendEvent('response', 'banana')
im main.js
am Ende der Datei platziere, wird es vom obigen Listener aufgenommen. Dies würde anzeigen, dass mein emitter.js
korrekt funktioniert.
Irgendwelche Ideen, warum das Ereignis, das in fire.js
ausgegeben wird, nicht aufgenommen wird, wäre großartig.
Vielen Dank, dass ich seit ein paar Tagen damit zu kämpfen habe und ich hatte das Gefühl, dass es etwas mit den Objekten zu tun hatte, die jedes Mal instanziiert wurden, was bedeutet, dass es keine Vererbung gab. –