1

在 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 来处理所有事件(在您想要的任何地方发出它们,例如在您的自定义对象中。)。将事件发射器原型绑定到您自己的自定义对象/函数的原因是什么?

4

2 回答 2

1

这样做并没有本质上的错误,但是如果您打算走上 的道路ee1,我建议您查看Event Aggregator Pattern。通过一些仔细的计划,您应该能够避免使用单个事件总线的一些问题。

就个人而言,我一直更喜欢ee2做事的方式。我认为它使事情更有条理(封装)。

于 2014-04-03T14:06:15.700 回答
0

这个想法是你的对象一个EventEmitter. 使用您给定的名称,这可以让您执行以下操作:

ee2.on('some-event', ...);

同时也正常使用您的对象:

ee2.myOwnFunction();
于 2014-04-02T21:47:46.700 回答