您的位置:首页 > Web前端 > Node.js

NodeJS基础-10 事件模块

2017-05-12 00:00 393 查看

一、添加具名事件

life.setMaxListeners(11);//一个事件可以最多设置11个监听事件 默认是10个

life.emit('please','我') ; //触发事件 please是事件名

//事件模块续

var EventEmitter = require('events').EventEmitter;
//生成一个EventEmitter的实例
var life = new EventEmitter();
//设置事件监听的最大数量
life.setMaxListeners(11);//一个事件可以最多设置11个监听事件 默认是10个

//加上事件监听 addEventLister
life.on('please',function(who){
console.log('给'+who+'倒水');
}) ;//on('事件名字', 回调方法

life.on('please',function(who){
console.log('给'+who+'做饭');
}) ;//on('事件名字', 回调方法

life.on('please',function(who){
console.log('给'+who+'洗衣服');
}) ;//on('事件名字', 回调方法

life.on('lalala',function(who){
console.log('给'+who+'发工资');
}) ;//on('事件名字', 回调方法

//life.emit('please','我') ;
var hasConforListerner = life.emit('please','我') ;//触发事件名称,传入参数值
//会返回true和false 代表事件是否被监听过

console.log(hasConforListerner)




二、移除事件

1、只能移除具名函数

//事件移除 必须是有具名函数

var EventEmitter = require('events').EventEmitter;
//生成一个EventEmitter的实例
var life = new EventEmitter();

function read(who){
console.log('请讲故事给' + who+'听');
}

life.on('please',read)

life.emit('please','我');

请讲故事给我听

移除函数

//事件移除 必须是有具名函数

var EventEmitter = require('events').EventEmitter;
//生成一个EventEmitter的实例
var life = new EventEmitter();

function read(who){
console.log('请讲故事给' + who+'听');
}
life.on('please',read)

life.removeListener('please',read);

life.emit('please','我');

2、批量移除

1、移除Emitter有关的所有监听事件函数

life.removeAllListeners();

2、移除具体某个事件

life.removeAllListeners(‘please’);

三、查询事件监听数量

1、life.listeners('please').length

console.log(life.listeners('please').length); ====》1

2、EventEmitter.listenerCount(life,'please')

console.log(EventEmitter.listenerCount(life,'please')); ===>1
//第一个参数传入实例名字 ,第二个传入事件名
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: