在基于 Node.js 的项目中,我有几个对象:
EmitterA
EmitterB
Consumer
在Consumer
的构造函数中,我有以下内容:
var a = new EmitterA();
a.on('someEvent', someEventHandler);
在EmitterA
的构造函数中,我有以下内容:
var self = this;
var b = new EmitterB();
b.on('someEventFromB', function() {
self.emit('someEvent');
});
最后,在EmitterB
的构造函数中,我有这样的东西:
this.emit('someEventFromB');
问题是Consumer
'ssomeEventHandler()
在初始.emit()
fromEmitterB
被触发时不会被触发。原因之一是时机。 直到事件被触发后才Consumer
订阅someEvent
。EmitterA
有没有办法在构建时附加事件处理程序? 我已经考虑过使用newListener
event,但是在以后使用多个侦听器以及将触发许多不同类型的事件的情况下,这将是一个问题。如果可能,我想避免这条路线,并正在寻找您可能建议的替代方案。谢谢!