[英]Can you use `.apply()` on the emit method of EventEmitter?
I'm trying to do... 我正在努力做...
EventEmitter = require('events').EventEmitter
events = new EventEmitter()
events.emit.apply(null, ['eventname', 'arg1', 'arg2', 'arg3'])
...but it doesn't seem to work or throw an error, any help? ...但是它似乎不起作用或抛出错误,有帮助吗?
在Apply方法上,您需要通知两个参数:有效范围(该值在方法内部为“ this”)和参数数组。
I think the emit()
function of the EventEmitter is expecting this
to be an actual EventEmitter object. 我认为EventEmitter的
emit()
函数期望this
是一个实际的EventEmitter对象。 The following seems to work if you pass in the events
object. 如果传递
events
对象,则以下内容似乎起作用。
events.emit.apply(events, ['eventname', 'arg1', 'arg2', 'arg3'])
Though at this point, might as well just call 尽管此时,最好还是打电话给
emit('eventname', 'arg1', 'arg2', 'arg3')
I am guessing the emit()
method is looping over an internal list of registered events to see if there is a matching one. 我猜
emit()
方法正在遍历注册事件的内部列表,以查看是否有匹配的事件。 Not sure if this helps, just something I came across today working with events... 不确定这是否有帮助,只是我今天在处理事件时遇到的问题...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.