Node.js_1

1.添加EventEmitter模块

var EventEmitter = require('events').EventEmitter

2.实例一个EventEmitter对象

var life = new EventEmitter()

3.可通过.setMaxListeners()来修改最大监听数,默认10个

life.setMaxListeners(11)

4.事件监听有两种方法,两种方式

function water(who){
    console.log('给 ' + who +' 倒水')
}

// addEventListener
life.on('求安慰',water)

life.on('求安慰',function(who){
    console.log('给 ' + who +' 揉肩')
})

5.移除一个监听事件,需要在 life.emit('求安慰','东晖')  之前才有用,并且只能移除具名函数

life.removeListener('求安慰',water)

6移除所有‘求安慰’的事件

life.removeAllListeners('求安慰') 

7触发事件

life.emit('求安慰','东晖')
life.emit('求溺爱','妹子')

8查看是否被监听(查看时所有事件会再触发一遍,why?)

var hasConfortListener = life.emit('求安慰','东晖')
var hasPlayedListener = life.emit('求溺爱','妹子')
var hasLovedListener = life.emit('求玩坏','ni ')

console.log(life.emit('求安慰','东晖'))
console.log(life.emit('求溺爱','妹子'))
console.log(life.emit('求玩坏','ni '))

9查看监听个数,需要具体的名字,有两种方法

console.log(life.listeners('求安慰').length)  //方法一
console.log(EventEmitter.listenerCount(life,'求溺爱'))  //方法二

整个Demo:

// 添加EventEmitter模块
var EventEmitter = require('events').EventEmitter

//实例一个EventEmitter对象
var life = new EventEmitter()

//可通过.setMaxListeners()来修改最大监听数,默认10个
life.setMaxListeners(11)


function water(who){
    console.log('给 ' + who +' 倒水')
}

// addEventListener
life.on('求安慰',water)

life.on('求安慰',function(who){
    console.log('给 ' + who +' 揉肩')
})

life.on('求安慰',function(who){
    console.log('给 ' + who +' 洗衣')
})


life.on('求溺爱',function(who){
    console.log('给 ' + who +' 买衣服')
})

// 移除一个监听事件,需要在 life.emit('求安慰','东晖')  之前才有用,并且只能移除具名函数
life.removeListener('求安慰',water)

//移除所有‘求安慰’的事件
life.removeAllListeners('求安慰') 

// 触发事件
life.emit('求安慰','东晖')
life.emit('求溺爱','妹子')

/*// 查看是否被监听
var hasConfortListener = life.emit('求安慰','东晖')
var hasPlayedListener = life.emit('求溺爱','妹子')
var hasLovedListener = life.emit('求玩坏','ni ')

console.log(life.emit('求安慰','东晖'))
console.log(life.emit('求溺爱','妹子'))
console.log(life.emit('求玩坏','ni '))
*/

// 查看监听个数,需要具体的名字,有两种方法
console.log(life.listeners('求安慰').length)  //方法一
console.log(EventEmitter.listenerCount(life,'求溺爱'))  //方法二
原文地址:https://www.cnblogs.com/Hale-Proh/p/6941101.html