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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值