繁体   English   中英

您可以在EventEmitter的emit方法上使用`.apply()`吗?

[英]Can you use `.apply()` on the emit method of EventEmitter?

我正在努力做...

EventEmitter = require('events').EventEmitter

events = new EventEmitter()

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

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

在Apply方法上,您需要通知两个参数:有效范围(该值在方法内部为“ this”)和参数数组。

我认为EventEmitter的emit()函数期望this是一个实际的EventEmitter对象。 如果传递events对象,则以下内容似乎起作用。

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

尽管此时,最好还是打电话给

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

我猜emit()方法正在遍历注册事件的内部列表,以查看是否有匹配的事件。 不确定这是否有帮助,只是我今天在处理事件时遇到的问题...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM