Ich arbeite an einer Klasse, WorkflowParent
, die sowohl eine EventEmitter
und untergeordnete Eigenschaften des Typs EventEmitter
ist.NodeJS EventEmitter nicht feuernd
Ich möchte, dass die Klasse einige Ereignisse von seinen untergeordneten Eigenschaften abfängt und sie mit verschiedenen Ereignisnamen erneut emittiert.
Es scheint wie ich es richtig mache, aber es funktioniert nicht. Hier ist mein Code:
var _ = require('lodash');
var EventEmitter = require('events').EventEmitter;
var awsswf = require('aws-swf');
var swf = awsswf.createClient();
var util = require('util');
function WorkflowParent(){
EventEmitter.call(this);
var me = this;
//Create decider object
me.decider = new awsswf.Decider({}); // <---- THIS IS AN EventEmitter
//Emit events from `decider` and `actor` objects
['poll'].forEach(function(eventName){
me.decider.on(eventName, function(event){
console.log('decider event "'+eventName+'"', event); // <---- THIS IS EXECUTED
var attached = me.emit(eventName+'.decider', event); // emit "poll.decider" event
console.log('attached to poll.decider event?', attached); // <---- THIS IS `false`
});
});
}
util.inherits(WorkflowParent, EventEmitter);
WorkflowParent.prototype.start = function(){
this.on('poll.decider', function(event){
console.log('poll.decider event triggered!'); // <---- THIS NEVER RUNS
});
this.decider.start();
};
module.exports = new WorkflowParent();