nodeJs事件之監聽移除事件


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()方法;

需要注意的是,監聽事件可以傳入匿名函數也可以傳入實名函數,但是移除事件的時候,必須傳入實名函數,傳入匿名函數會有錯誤;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM