在NodeJS中使用类函数作为事件侦听器
Using a class function as an event listener in NodeJS
我有以下代码:
context
.on( 'hangup', this.handleHangup );
在类构造函数和中
PlayMessage.prototype.handleHangup = function() {
log.callout.info( "Call [%s]: Client hungup.", this.row.get( 'id' ) );
this.endCall(); // Get out of here
}
作为类的函数。该类名为PlayMessage。
我得到一个错误说:
events.js:130throw TypeError("listener必须是函数");
谈到上下文。在我粘贴在上面的(…)行。
我应该如何使用类函数作为监听器?
一般来说,当将函数传递给依赖绑定上下文(this
)的事件处理程序(如原型方法)时,必须手动绑定上下文才能传递。
context
.on( 'hangup', this.handleHangup.bind(this) );
这样可以确保handleHangup
中的this
值是您期望的"类"的实例。
关于Function
方法的更多信息.bind()
问题是我试图声明一个没有"new"的类,所以没有原型函数存在。这对我来说是一次奇妙的学习经历。
相关文章:
- 如何在for循环中添加事件侦听器
- 未命中服务器发送的事件侦听器
- 如何覆盖原型中的事件侦听器
- 无法将事件侦听器附加到画布
- 如何在d3.js中自定义事件侦听器
- 在es6中,将带有回调的事件侦听器设置为可迭代的
- 事件侦听器未在chrome扩展中的options.js中启动
- IE8更改文本区域上的事件侦听器不工作
- 将事件侦听器添加到文档,而不是签入元素存在,然后添加事件侦听器
- javascript删除事件侦听器
- 我应该/如何清除mousemove JQuery事件侦听器
- 在JQuery中使用谷歌地图Api事件/侦听器
- 如何使用我的Jquery代码创建委托事件侦听器
- 'mousemove'画布中的事件侦听器-指针仅在最后一个矩形中更改
- 为什么此事件侦听器不工作
- 是否可以在数字输入框中的小按钮中添加事件侦听器
- 在Google Chrome扩展中添加事件侦听器
- SVG元素在转换后会丢失事件侦听器
- jQuery事件侦听器多次启动
- 如何在不删除类似侦听器的情况下从父对象中删除jQuery事件侦听器