EventEmitter
发布日期:2021-07-26 18:44:13 浏览次数:0 分类:技术文章

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个监听器监听连接事件。程序执行完毕。
上一篇:Altium Designer 常用快捷键汇总
下一篇:java开发学习:IO流