Node.js 入门教程 (五):事件模块

在nodejs中是不存在浏览器冒泡,捕获这些行为的,所以nodejs中实现了events这个模块,nodejs中大多数模块都集成了这个模块,所以events模块是非常重要的,它只对外暴露了一个对象就是EventEmitter,EventEmitter的作用只有两个:事件的发射,事件的监听,EventEmitter支持多个事件监听器,最大为10,也可以自定义最大数,也就是可以对某个事件注册十个监听函数,做十件事情

var EventEmitter = require('events').EventEmitter
var life = new EventEmitter()
//addEventListener
life.on('aevent',function(who){
    console.log('aevent trigger'+who+'do something')
})
life.emit('aevent','linlin')

代码解析:

addEventListener和on等价,都是给事件添加监听器,emit触发事件

life.setMaxListeners(11) 改变最大值

 

如何去查看一个事件是否被监听过呢?

emit函数会返回一个布尔值,true表示监听过,false表示没有监听过

 

在emit之前可以移除监听:

life.removeListener('事件名',监听函数名)(要使用具名函数)

life.removeAllListeners('事件名')  如果没有事件名,会移除所有事件的监听

 

获取监听器个数:life.listeners('事件名').length 或者 EventEmitter.listenerCount(life,'事件名')

posted @ 2017-12-06 20:38  晓梅子酱  阅读(172)  评论(0编辑  收藏  举报