zoukankan      html  css  js  c++  java
  • 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()方法;

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

  • 相关阅读:
    用感知机(Perceptron)实现逻辑AND功能的Python3代码
    xpadder教程:自定义设置游戏手柄的图片
    用Python实现小说中的汉字频率统计
    天猫精灵X1智能音箱使用感想
    一道常被人轻视的前端JS面试题
    jQueryNotes仿QQ空间添加标记
    JQ对象到底是什么
    正则匹配规则
    自定义右键菜单
    IIS处理并发请求时出现的问题及解决
  • 原文地址:https://www.cnblogs.com/jone-chen/p/5051703.html
Copyright © 2011-2022 走看看