1.0.1 • Published 2 years ago
@wxwzl/eventemitter v1.0.1
@wxwzl/eventemitter
typescript 版 EventEmitter
安装
npm i @wxwzl/eventemitter -S
使用
import EventEmitter from "@wxwzl/eventemitter";
let emitter = new EventEmitter();
//监听一次
emitter.once("test",(data)=>{
console.log("test",data);
});
//持续监听
let testCallBack = (data)=>{
console.log("testCallBack",data);
}
//阻止后续添加的事件对emit、emitOneCopy 发出的事件的处理,通过事件处理函数返回true
let stopCallBack = (data)=>{
console.log("stopCallBack",data);
return true;
}
emitter.on("testCallBack",testCallBack);
//同时监听多个事件
emitter.on(["testCallBack","test"],testCallBack);
//监听固定次数
let testTimeCallBack = ()=>{
console.log("testCallBack",data);
}
emitter.on("testTimeCallBack",testTimeCallBack,undefined,3);
//移除某个事件的监听
emitter.off("testTimeCallBack");
//移除某个事件的某个处理函数
emitter.off("testTimeCallBack",testTimeCallBack);
//移除所有监听函数
emitter.clear();
// 同时支持链式调用
emitter.on("test",()=>{}).off("test).clear();
// 为每一个事件监听函数派发事件,事件监听函数收到的事件参数将是发送事件参数的一份拷贝
emitter.emitOneCopy("testCallBack",{a:1});
//广播事件,确保让所有事件处理函数都执行,让某些事件处理函数不会受到在它之前添加的事件处理函数返回true而没有收到事件的影响
emitter.broadCast("testCallBack",{a:1});
//广播事件,确保让所有事件处理函数都执行,让某些事件处理函数不会受到在它之前添加的事件处理函数返回true而没有收到事件的影响
//事件监听函数收到的事件参数将是发送事件参数的一份拷贝
emitter.broadCastOneCopy("testCallBack",{a:1});