zoukankan      html  css  js  c++  java
  • 事件(Event)机制 .on() .emit() .once() .removeListener()

    // 事件(Event)机制
    const EventEmitter = require('events');
    const emitter = new EventEmitter();
    // 侦听一个事件
    emitter.on("a", (event) => {
    console.log(event + "---监听到了!
    ");
    });
    // 发出一个事件
    emitter.emit("a", "发出事件");
    

      

    on 与 once 的差别
    /* on 与 once 的差别
    on 会无限制的响应
    once 只会响应一次 */
    const EventEmitter = require('events');
    const emitter = new EventEmitter();
    emitter.on("a", function (e) {
    	  console.log('on监听事件:'+e);
    });
    emitter.once("a", function (e) {
    	  console.log('once监听事件:'+e);
    });
    emitter.emit("a", "event");
    emitter.emit("a", "event1");
    emitter.emit("a", "event2");
    /* on监听事件:event
    once监听事件:event
    on监听事件:event1
    on监听事件:event2 */
    

      

    removeListener 来删除侦听的函数
    /* removeListener
    当然我们侦听了某个消息后,不想再侦听时可用 removeListener 来删除侦听的函数
    但是前提函数必须是有名字的,并且是变量。如下面的函数 */
    const EventEmitter = require('events');
    const emitter = new EventEmitter();
    const listener = function() {
    	  console.log('listener invoked!');
    };
    emitter.on("a", listener);
    emitter.emit("a", "event");
    console.log('event send!');
    console.log('before remove');
    emitter.removeListener("a", listener);
    console.log('after remove');
    emitter.emit("a", "event2");
    

      

  • 相关阅读:
    Python 标准库 urllib2 的使用细节
    为什么C++编译器不能支持对模板的分离式编译
    source insight插件
    tar命令
    绘制和重绘,有效矩形和无效矩形
    常量表达式
    区间迭代
    lambda函数
    decltype和新的返回值语法
    auto用法
  • 原文地址:https://www.cnblogs.com/fdxjava/p/14202213.html
Copyright © 2011-2022 走看看