美文网首页
Node.js EventEmitter中两个事件

Node.js EventEmitter中两个事件

作者: kidz | 来源:发表于2017-08-04 10:24 被阅读86次

    在node.js的eventEmitter里有两个事件,newListener和removeListener
    newListener
    newListener是在新监听器添加的时候被被触发的。
    接收参数:
    event--字符串,事件名称
    listener--处理事件函数
    例子:

    let events = require("events");
    let eventEmitter = new events.EventEmitter();
    
    eventEmitter.on("newListener",(event,Listener)=>{
        if(event==="event"){
            console.log("B")
        }
    });
    
    eventEmitter.on("event",()=>{
       console.log("A");
    });
    
    eventEmitter.emit("event");
    

    输出:
    B
    A
    正明在添加event监听器的时候先触发newListener了.

    removeListener
    removeListener是当监听器从指定监听器数组中被移除的时候,而且此操作会改变之后那些监听器的索引.
    接收参数:
    event--字符串,事件名称
    listener==处理函数
    例子

    let events = require("events");
    let eventEmitter = new events.EventEmitter();
    
    eventEmitter.on("removeListener",(event,Listener)=>{
        if(event==="event"){
            console.log("B")
        }
    });
    
    eventEmitter.on("event",()=>{
       console.log("A");
    });
    
    eventEmitter.emit("event");
    eventEmitter.removeAllListeners("event");
    

    输出
    A
    B
    证明event被移除的时候触发的

    注意:
    removeListener和newListener是不能同时触发的。newListener会影响removeListener。

    刚开始学习node.js水平有限,以此给自己学习做个记录,如果有错误的地方还请指正。

    相关文章

      网友评论

          本文标题:Node.js EventEmitter中两个事件

          本文链接:https://www.haomeiwen.com/subject/nfhvlxtx.html