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");
    

      

  • 相关阅读:
    第十八章、使用集合
    第十九章、枚举集合
    第十七章、泛型概述
    第十六章、使用索引器
    第十五章、实现属性以访问字段
    第十四章、使用垃圾回收和资源管理
    第十三章、创建接口和定义抽象类
    AtCoder Grand Contest 018 E
    AtCoder Regular Contest 059 F Unhappy Hacking
    Codeforces 464E. The Classic Problem
  • 原文地址:https://www.cnblogs.com/fdxjava/p/14202213.html
Copyright © 2011-2022 走看看