在node.js中,为什么事件发射器的一些示例看起来很简单:
EventEmitter = require("events").EventEmitter;
ee1 = new EventEmitter;
然后ee1用于发出和收听事件。
其他例子看起来像这样:
EventEmitter = require("events").EventEmitter;
util = require("util");
MyFunc = function ()
EventEmitter.call(this);
}
util.inherit(MyFunc, EventEmitter);
ee2 = new MyFunc();
然后ee2用于发出和收听事件。
您是否可以使用ee1处理所有事件(在您想要的任何地方发出它们,例如在您的自定义对象中)。将事件发射器原型绑定到您自己的自定义对象/函数的原因是什么?
答案 0 :(得分:1)
这样做没有天生的错误,但是如果你打算走ee1
的道路,我建议你研究一下Event Aggregator Pattern 。通过一些仔细的计划,您应该能够通过单一事件总线避免一些陷阱。
就个人而言,我总是更喜欢ee2
做事的方式。我认为它使事情更有条理(封装)。
答案 1 :(得分:0)
我们的想法是您的对象 EventEmitter
。使用您给出的姓名,可以执行以下操作:
ee2.on('some-event', ...);
同时也正常使用你的对象:
ee2.myOwnFunction();