• Node-EventEmitter的用法


    题记

            node.js中EventEmitter的用法

    引入模块

    // 引入 events 模块
    var events = require('events');
    // 创建 eventEmitter 对象
    var eventEmitter = new events.EventEmitter();

    EventEmitter的用法

    普通用法 
    1. //event.js 文件
    2. var EventEmitter = require('events').EventEmitter;
    3. var event = new EventEmitter();
    4. event.on('some_event', function() {
    5.     console.log('some_event 事件触发');
    6. });
    7. setTimeout(function() {
    8.     event.emit('some_event');
    9. }, 1000);
     调用顺序
    1. //event.js 文件
    2. var events = require('events');
    3. var emitter = new events.EventEmitter();
    4. emitter.on('someEvent', function(arg1, arg2) {
    5.     console.log('listener1', arg1, arg2);
    6. });
    7. emitter.on('someEvent', function(arg1, arg2) {
    8.     console.log('listener2', arg1, arg2);
    9. });
    10. emitter.emit('someEvent', 'arg1 参数', 'arg2 参数');
     移除事件绑定的函数
    1. var events = require('events');
    2. var eventEmitter = new events.EventEmitter();
    3. // 监听器 #1
    4. var listener1 = function listener1() {
    5. console.log('监听器 listener1 执行。');
    6. }
    7. // 监听器 #2
    8. var listener2 = function listener2() {
    9. console.log('监听器 listener2 执行。');
    10. }
    11. // 绑定 connection 事件,处理函数为 listener1
    12. eventEmitter.addListener('connection', listener1);
    13. // 绑定 connection 事件,处理函数为 listener2
    14. eventEmitter.on('connection', listener2);
    15. var eventListeners = eventEmitter.listenerCount('connection');
    16. console.log(eventListeners + " 个监听器监听连接事件。");
    17. // 处理 connection 事件
    18. eventEmitter.emit('connection');
    19. // 移除监绑定的 listener1 函数
    20. eventEmitter.removeListener('connection', listener1);
    21. console.log("listener1 不再受监听。");
    22. // 触发连接事件
    23. eventEmitter.emit('connection');
    24. eventListeners = eventEmitter.listenerCount('connection');
    25. console.log(eventListeners + " 个监听器监听连接事件。");
    26. console.log("程序执行完毕。");
     错误处理
    1. var events = require('events');
    2. var emitter = new events.EventEmitter();
    3. emitter.emit('error');

     后记

            觉得有用可以点赞或收藏! 

  • 相关阅读:
    如果把网络原理倒过来看,从无到有,一切如此清晰(中)
    Css3新布局---Grid网格
    使用branch and bound分支定界算法选择UTXO
    HCIP--网络笔记(2)
    设计模式:命令模式(C#、JAVA、JavaScript、C++、Python、Go、PHP)
    mysql表操作
    中文drupal教程2. 请求对象Request及请求堆栈
    C++控制台光标控制与进度条绘制
    等额本金和等额本息的区别
    SpringBoot面试题及答案 110道(持续更新)
  • 原文地址:https://blog.csdn.net/m0_70819559/article/details/133963272