码迷,mamicode.com
首页 > Web开发 > 详细

nodeJs事件之监听移除事件

时间:2015-12-16 19:04:55      阅读:206      评论:0      收藏:0      [点我收藏+]

标签:

var EventEmitter=require(‘events‘).EventEmitter
var life=new EventEmitter();
//comfort  求安慰,函数名;
//fondness 求溺爱,函数名; 
//官方建议,事件监听的最大数量不要超过10个,太多的话可能会导致内存的泄漏,当然这个值是可以修改的,通过setMaxListeners()方法修改;
life.setMaxListeners(3)
life.on(‘comfort‘,function(who){//监听,求安慰,
    console.log(‘给‘+who+‘倒水!‘);
})
life.on(‘comfort‘,function(who){//监听,求安慰,
    console.log(‘给‘+who+‘揉肩‘);
})
life.on(‘comfort‘,zuofan); 
function zuofan(who){
    console.log(‘给‘+who+‘做饭‘);
}
life.on(‘fondness‘,maiyifu); 
life.on(‘fondness‘,jiaogongzi); 
function maiyifu(who){
    console.log(‘给‘+who+‘买衣服‘);
}
function jiaogongzi(who){
    console.log(‘给‘+who+‘交工资‘);
}
//life.removeListener(‘comfort‘,zuofan); //移除事件; 
life.emit(‘comfort‘,‘老公‘)//调用事件
life.emit(‘fondness‘,‘老婆‘)//调用事件
//console.log(life.emit(‘comfort‘,‘老公‘))//是否调用事件,返回true,false;
console.log(‘给老公做的事情:‘+life.listeners(‘comfort‘).length)//事件的个数;
console.log(‘给老婆做的事情:‘+life.listeners(‘fondness‘).length)//事件的个数;

打开CMD,运行node events.js,如下图所示:

技术分享

首先监听事件,然后用emit()方法来调用,移除事件为removeListener()方法;

需要注意的是,监听事件可以传入匿名函数也可以传入实名函数,但是移除事件的时候,必须传入实名函数,传入匿名函数会有错误;

nodeJs事件之监听移除事件

标签:

原文地址:http://www.cnblogs.com/jone-chen/p/5051703.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!