nodejs系列: 事件模块 javascript
events是Nodejs最重要的模块,原因是Node.js本身架构就是基于事件模型的 ; events模块不仅用于用户代码与Node.js下层事件循环的交互;还几乎被所有的模块依赖。
下面介绍一下NODE的事件模块的一些常用对象:
1 events.EventEmitter
EventEmitter的核心就是事件发射与事件监听器功能的封装。EventEmitter的每个事件由一个事件或若干个参数组成,事件名是一个字符串。对于每个事件,EventEmitter支持若干个事件监听器。当事件发射时,注册到这个事件的事件监听器被依次调用,事件处理结果参数作为回调函数的参数传递。
常用API的方法介绍:
1 EventEmitter.on(event,listener)为指定事件注册一个监听器,接受一个字符串event和一个回调函数listener
2 EventEmitter.emit(event,[arg1],[arg2]....) 触发event事件,传递若干可选参数到事件监听器的参数表
3 EventEmitter.once(event,listener) 为指定事件注册一个单次监听器,即监听器最多只会触发一次,触发后立刻解除该监听器。
4 EventEmitter.removeListener(event,listener)移除指定事件的某个监听器,listener必须是该事件已经注册过的监听器。
5 EventEmitter.removeAllListeners([event]) 移除所有事件的所有监听器,如果指定event,则移除指定事件的所有监听器。
实例说明:
var events = require('events');
var eventEmitter = new events.EventEmitter();
eventEmitter.on('click',function(param1,param2){
console.log('click method 1 = ', param1, param2);
});
eventEmitter.on('click',function(){
console.log('click method 2 ')
});
eventEmitter.emit('click','hello','world');
两个注册的事件 都被执行了,且按照注册顺序执行。
我们在处理事件的时候 有时候需要抛出错误 以便提醒 出错了, 我们可用使用 下面的抛出语句。
var events=require('events');
var emitter=new events.EventEmitter();
emitter.emit('error');例子2:
//引用事件模块
var EventEmitter = require('events').EventEmitter;
//创建事件对象
var event = new EventEmitter();
//注册事件及 编写具体执行的代码序列
event.on('doing',function(){
console.log('doing 事件 ');
});
//5秒后触发事件
setTimeout(function(){
event.emit('doing');
},5000);此实例运行结果:
5秒后 触发事件 ‘doing' 打印出 'doing 事件'
下一篇 开始介绍 模块封装
如有疑问 请留言 欢迎提供建议











评论已有 0 条