const events = require('events'),
EventEmitter = events.EventEmitter,
util = require('util');
function myEmiter(){
EventEmitter.call(this);
};
util.inherits(myEmiter,EventEmitter);//继承EventEmitter类
const myEmitterIns = new myEmiter();
myEmitterIns.on('data',(o)=>{
console.log('receive the data:'+o.a);
});
class myEmiter extends EventEmitter{}//继承EventEmitter类
const myEmitterIns = new myEmiter();
myEmitterIns.on('data',(o)=>{
console.log('receive the data:'+o.a);
});
myEmitterIns.emit('data',{a:1});
class myEmiter extends EventEmitter{}
const myEmitterIns = new myEmiter();
myEmitterIns.on('data',function(data){
console.log("普通回调函数中this:");
console.log(this);
});
myEmitterIns.on('data1',(data1)=>{
console.log("箭头回调函数中this:");
console.log(this);
});
myEmitterIns.emit('data',{a:1});
myEmitterIns.emit('data1',{a:1});
class myEmiter extends EventEmitter{}
const myEmitterIns = new myEmiter();
myEmitterIns.on('data',function(data){
console.time('data事件执行了');
for(var i = 0 ; i< 100000; i++)
for(var j = 0 ; j< 100000; j++)
;
console.timeEnd('data事件执行了');
});
myEmitterIns.on('data1',(data1)=>{
console.log("data1事件开始执行...");
});
myEmitterIns.emit('data',{a:1});
myEmitterIns.emit('data1',{a:1});
myEmitterIns.on('data',function(data){
setImmediate(()=>{
console.log('data事件执行了...');
});
});
myEmitterIns.once('one',(data)=>{
console.log(data);
});
myEmitterIns.emit('one','this is first call!');
myEmitterIns.emit('one','this is second call!');
myEmitterIns.on('data',function(e){
console.log(e);
});
myEmitterIns.removeListener('data',function(e){
console.log(e);
});
myEmitterIns.emit('data','hello data!');
function deal(e){
console.log(e);
}
myEmitterIns.on('data1',deal);
myEmitterIns.removeListener('data1',deal);
myEmitterIns.emit('data1','hello data1!');
function dealData1(e){
console.log('data事件执行了...A');
}
myEmitterIns.on('data',function(e){
console.log(e);
myEmitterIns.removeListener('data',dealData1);//这里解除dealData1的绑定
});
myEmitterIns.on('data',dealData1);
myEmitterIns.emit('data','data事件执行了...B');
/*执行结果为:
data事件执行了...B
data事件执行了...A
*/
//再次触发该事件时,dealData1回调已经被解除绑定了
myEmitterIns.emit('data','data事件执行了...');
//data事件执行了...
var cbA = ()=>{},
cbB = ()=>{};
var emitter = new myEmiter();
emitter.on('data',cbA);
emitter.on('data',cbB);
console.log('emitter实例的data事件绑定了%d个回调函数',emitter.listenerCount('data'));
console.log('它们是:',emitter.listeners('data'));
console.log(EventEmitter.defaultMaxListeners);//结果为10个
var cbA = ()=>{},
cbB = ()=>{};
var emitter = new myEmiter();
emitter.setMaxListeners(1);
emitter.on('data',cbA);
emitter.on('data',cbB);
console.log(emitter.getMaxListeners());
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有