内置模块-events

 

const EventEmitter = require("events");

//1 创建发射器
const emitter = new EventEmitter();

// 2 监听 某一个事件   on || addlistener
emitter.on('click',(args)=>{
    console.log('监听到了clik事件',args);
})

const listener2 = (args) => {
    console.log('监听2到了clik事件',args);
}
emitter.on('click',listener2)

// 3 发射一个事件
setTimeout(function(){
    emitter.emit("click","eric",'james','kobe');
    // 取消监听
    emitter.off('click',listener2)

    emitter.emit("click","eric",'james','kobe');
},2000)

// 打印结果
// 监听到了clik事件 eric 
// 监听2到了clik事件   eric
// 监听到了clik事件 eric 
-----------------
 
 
const EventEmitter = require('events');
 
//1 创建发射器
const emitter = new EventEmitter();

// 2 监听 某一个事件   on || addlistener
emitter.on('click',(args)=>{
    console.log('监听到了clik事件',args);
})

const listener2 = (args) => {
    console.log('监听2到了clik事件',args);
}
emitter.on('click',listener2)

emitter.on("tap",args => {
    console.log(args);
})

// 3 获取注册的事件
console.log(emitter.eventNames())
// 获取 事件个数
console.log(emitter.listenerCount("click"));

console.log(emitter.listeners("click"));
 
-----------------------
 
const EventEmitter = require("events");

//1 创建发射器
const emitter = new EventEmitter();

// 2 监听 某一个事件   once 只执行一次
emitter.once('click',(args1,args2,args3)=>{
    console.log('监听到了clik事件',args1,args2,args3);
})

const listener2 = (args1,args2,args3) => {  
    console.log('监听2到了clik事件',args1,args2,args3);
}
emitter.on('click',listener2)

const listener3 = (args1,args2,args3) => {
    console.log('监听3到了clik事件',args1,args2,args3);
}
// 将本次监听 放到最 前面
emitter.prependListener('click',listener3)

emitter.on("scroll",(args)=>{
    console.log('监听到 scroll 方法');
})
 
// 3 发射一个事件
setTimeout(function(){
    emitter.emit("click","eric",'james','kobe'); 
    // 移除 所有 监听事件
    emitter.removeAllListeners();
    emitter.emit("scroll");   
    emitter.emit("click","eric",'james','kobe');
    emitter.emit("scroll","eric",'james','kobe');
},2000)

 console.log(this)
 
posted @ 2021-04-09 14:54  13522679763-任国强  阅读(49)  评论(0)    收藏  举报