EventEmitter
发布日期:2021-07-26 18:44:13
浏览次数:14
分类:技术文章
本文共 1670 字,大约阅读时间需要 5 分钟。
EventEmitter 类
学习笔记; event 模块只提供了一个对象 events.EventEmitter, 核心就是时间触发和事件监听功能var events = require('events');//创建对象var eventEmitter = new events.EventEmitter();
EventEmitter对象如果在实例化时发生错误,会触发error事件
//event.jsvar EventEmitter = require('events').EventEmitter;var event = new EventEmitter();event.on('some_event',function(){ console.log('some_event 事件触发');})setTimeout(function(){ event.emit('some_event');},1000);
当事件触发时注册到这个事件的事件监听器依次被调用,时间参数作为回调函数参数传递
var events = require('events');var emitter = new events.EventEmintter();emitter.on('someEvent', function(arg1,arg2){ console.log('listener1',arg1,arg2);});emitter.on('someEvent',function(arg1,arg2){ console.log('listener2',arg1,arg2);});emitter.emit('someEvent','arg1 参数','arg2 参数');
执行结果
listener1 arg1 参数 arg2 参数 listener2 arg1 参数 arg2 参数EventEmitter 提供多个属性,如on和emit。on用于绑定事件函数,emit用于触发事件。
var events = require('events');var eventEmitter = new event.EventEmitter();var listener1 = function listener1(){ console.log('监听器listener1执行');}var listener2 = function listener2(){ console.log('监听器listener2执行');}eventEmitter.addlistener('connection',listener1);eventEmitter.on('connection',listener2);//listenerCount 返回指定事件监听器数量var eventListeners = eventEmitter.listenerCount('connection');console.log(eventListeners + " 个监听器监听连接事件。");eventEmitter.emit('connection');eventEmitter.removeListener('connection',listener1);console.log("listener1 不再受监听。")eventEmitter.emit('connection');eventListeners = eventEmitter.listenerCount('connection');console.log(eventListeners + " 个监听器监听连接事件")console.log('程序执行完毕。');
运行结果
2个监听器监听连接事件。监听器listener1执行。监听器listener2执行。listener1不再受监听。监听器listener2执行1个监听器监听连接事件。程序执行完毕。
转载地址:https://blog.csdn.net/qq_41877422/article/details/102503388 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
表示我来过!
[***.240.166.169]2024年04月23日 12时55分26秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
你确定懂OAuth 2.0的三方软件和受保护资源服务?
2019-04-27
你真的深知JWT(JSON Web Token)了吗?
2019-04-27
Mac下查看、切换JDK版本及其安装目录
2019-04-27
在Mac上安装consolas字体
2019-04-27
阿里P8面试:微服务项目如何校验参数
2019-04-27
判断URL字符串是否合法
2019-04-27
图文+代码讲解带你攻克OAuth 2.0授权流程的三座大山
2019-04-27
VirtualBox添加ISO文件
2019-04-27
图文+代码带你攻克OAuth 2.0三大核心授权类型
2019-04-27
@Value注解不能注入static修饰的属性
2019-04-27
spring boot 2.x 接口返回时间类型不再自动序列化为timestamp
2019-04-27
Ubuntu Linux 创建root用户并且允许远程登录
2019-04-27
Linux shell 关于 2>&1 的含义
2019-04-27
Ubuntu Linux系统使用apt-get install安装的软件的相关位置
2019-04-27
nginx同一server配置多个前端工程location访问404问题
2019-04-27
Java 多线程与高并发
2019-04-27
第二章 Springboot 自定义banner图案
2019-04-27
第三章 Springboot 热部署
2019-04-27
Log4j格式化符号%详解
2019-04-27