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')
网友评论