0

我正在尝试做...

EventEmitter = require('events').EventEmitter

events = new EventEmitter()

events.emit.apply(null, ['eventname', 'arg1', 'arg2', 'arg3'])

...但它似乎不起作用或抛出错误,有什么帮助吗?

4

2 回答 2

1

在 Apply 方法上,您需要通知两个参数:有效范围(方法内的“this”将是什么值)和参数数组。

于 2013-09-19T20:48:50.387 回答
0

我认为emit()EventEmitter 的功能期望this是一个实际的 EventEmitter 对象。如果您传入对象,则以下内容似乎有效events

events.emit.apply(events, ['eventname', 'arg1', 'arg2', 'arg3'])

虽然在这一点上,还不如打电话给

emit('eventname', 'arg1', 'arg2', 'arg3')

我猜该emit()方法正在循环访问已注册事件的内部列表,以查看是否有匹配的事件。不知道这是否有帮助,只是我今天在处理活动时遇到的事情......

于 2013-10-07T19:44:57.437 回答