如何使用一个函数来设置一个监听器回调
NodeJS - How can I use a function to set a listeners callback?
var events = require('events');
var requests = new events.EventEmitter();
function setListenerCallback(callback) {
requests.on('randomEvent', callback(message));
}
setListenerCallback(function (e) {
console.log(e);
});
Result: callback is undefined.
正如您所看到的,我正试图从函数参数设置侦听器回调函数。结果是函数类型为'undefined',因此在侦听器作用域之外。
那么我如何使用一个函数来设置一个监听器回调呢?
如何从侦听器访问父函数作用域?
代码中有一个bug:
旧代码:
var events = require('events');
var requests = new events.EventEmitter();
function setListenerCallback(callback) {
requests.on('randomEvent', callback(message));
}
setListenerCallback(function (e) {
console.log(e);
});
新代码:
var events = require('events');
var requests = new events.EventEmitter();
function setListenerCallback(callback) {
requests.on('randomEvent', callback);
}
setListenerCallback(function (e) {
console.log(e);
});
现在当事件被触发时,回调被调用。
相关文章:
- 监听器必须是一个函数
- JQuery:所有按钮只使用一个监听器有什么缺点吗
- javaScript-我们如何将一个事件监听器设置为另一个事件监听器的从属
- 是否可以在单独的谷歌地图瓦片中添加一个监听器
- 如何创建一个jQuery监听器来遍历一些标记
- DOM树中所有子元素的一个监听器
- 我想为一个元素添加一个事件监听器,当相应的元素滚动到视图中时,该监听器就会被激发
- 为什么生成器的下一个函数不能是事件监听器的回调函数?
- 如何使用一个函数来设置一个监听器回调
- 如何删除Hammer.js 2.0中的事件监听器,并将识别器绑定到一个新函数
- dblclick的事件监听器导致鼠标移动的事件不起作用,并显示一个带有一条线的圆圈
- 在React组件卸载时移除一个事件监听器
- 你能重写“onscroll”吗?使用另一个监听器
- Node.js发送到一个特定的监听器
- 为每行绑定一个监听器,jquery
- Node.js EventEmitter:如何绑定一个类上下文到事件监听器,然后移除这个监听器
- 用CanJS为文档上触发的事件设置一个全局监听器/控制器
- 我如何得到一个事件监听器的工作上的元素是添加到我的html通过javascript
- 一个页面上有多个jQuery事件监听器
- 返回一个从NodeJS监听器派生的值