tseep号称是”世界上最快的事件发射器“,在“经典API事件发射器”方面,比evetemitter3快12倍。
基于事件映射的 emit 方法的全类型参数完全实现 NodeJS.EvetEmitter 类型和标准,提供接口最快的pure-js EvetEmitter使用evetemitter3测试进行全面测试基准emit-multiple-listeers:tseepx40,569,711ops/sec<---EvetEmitter1x4,498,223ops/secEvetEmitter2x4,536,296ops/secEvetEmitter3x5,852,395ops/secfastemitterx6,127,215ops/secevet-emitterx3,449,595ops/seccotra/emitterx2,186,002ops/sectseex5,231,167ops/secemitixx6,549,983ops/secFastestis['tseep']基准测试安装和使用pmitseep简单用法:import{EvetEmitter}from"tseep";costevets=ewEvetEmitter<{foo:(a:umber,b:strig)=>void;}>();//foo'sargumetsisfullytypecheckedevets.emit("foo",123,"helloworld");APIEvetEmitter<T> ,其中 T 延伸 {[evetName]:Callsigature} 。
EvetEmitter.emit 的args基于事件映射完全类型化。
!! __proto__ 事件名称受限制(类型保护存在)!!
//Listeer=(...args:ay[])=>Promise<ay>|void//EvetMapexteds{[eveti(strig|symbol)]:Listeer}classEvetEmitter<EvetMap>{readolymaxListeers:umber;readoly_evetsCout:umber;emit(evet:EvetKey,...args:ArgsN<EvetMap[EvetKey]>):boolea;o(evet:EvetKey,listeer:EvetMap[EvetKey]):this;oce(evet:EvetKey,listeer:EvetMap[EvetKey]):this;addListeer(evet:EvetKey,listeer:EvetMap[EvetKey],argsNum?:ArgsNum<EvetMap[EvetKey]>):this;removeListeer(evet:EvetKey,listeer:EvetMap[EvetKey]):this;hasListeers(evet:EvetKey):boolea;prepedListeer(evet:EvetKey,listeer:EvetMap[EvetKey]):this;prepedOceListeer(evet:EvetKey,listeer:EvetMap[EvetKey]):this;off(evet:EvetKey,listeer:EvetMap[EvetKey]):this;removeAllListeers(evet?:EvetKey):this;setMaxListeers(:umber):this;getMaxListeers():umber;listeers(evet:EvetKey):EvetMap[EvetKey][];rawListeers(evet:EvetKey):EvetMap[EvetKey][];evetNames():Array<strig|symbol>;listeerCout(type:EvetKey):umber;}
评论