1.0.1 • Published 2 years ago

@wxwzl/eventemitter v1.0.1

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

@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.