# eventemitter **Repository Path**: wxwzl/eventemitter ## Basic Information - **Project Name**: eventemitter - **Description**: typescript Event Emitter - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-09-10 - **Last Updated**: 2025-11-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # @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}); ``` ## 文档 [Documentation generated from source files by Typedoc](./docs/index.html).