tseep 极速事件发射器开源项目

我要开发同款
匿名用户2023年04月25日
190阅读

技术信息

开源地址
https://github.com/Morglod/tseep
授权协议
MIT

作品详情

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");API

EvetEmitter<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;}

功能介绍

tseep 号称是”世界上最快的事件发射器“,在“经典 API 事件发射器”方面,比 eventemitter3 快12倍。 基于事件映射的 emit 方法的全类型参数 完全实现 NodeJS....

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论