Node.js 的 events 模块

Node.js 没有浏览器的事件冒泡、事件捕获机制。

events 模块是 Node.js 基础及重要的模块, 只对外暴露一个event 对象 eventEmitter ,对象有两个方法,event.emit :事件发射;event.listener :事件监听。 可最多向一个事件添加十个监听(回调方法)

//添加监听
var EventEmitter = require('events').EventEmitter;
var instance = new EventEmitter();
instance.on('eventname', function(arguments){}); // 监听的时间和事件触发后执行的函数

//自定义最大数
instance.setMaxListeners(11) ;  //  设置事件最大监听(针对每种事件)  默认为10个,官方说明超过十个会造成内存泄露,最好不要超过十个
 
// 事件监听之后,需要emit(发射,发出)才会执行
instance.emit('eventname', arguments);  // 触发的事件和需要传递的形参

//判断是否监听
boolean instance.emit('eventname',arguments)    //true or false

//移除监听事件
//移除单个事件监听
instance.removeListener('eventname',funcName)   //移除事件需具名函数,匿名函数不行

//移除多个事件监听
instance.removeAllListerner()   //不传参表示移除所有事件监听
instance.removeAllListerner('eventname')    //移除特定event的所有事件监听

//计算事件监听数量
//第一种
instance.listeners('eventname').length
//第二种
EventEmitter.listenerCount(instance, 'eventname')

你可能感兴趣的:(Node.js 的 events 模块)