@luband/jstools
Version:
前端工具包
2 lines (1 loc) • 823 B
JavaScript
import{__spreadArray as t}from"tslib";var n=new(function(){function n(){this.handlers={},this.args={}}return n.prototype.on=function(t,n){this.handlers[t]||(this.handlers[t]=[]),this.handlers[t].push(n)},n.prototype.onLatest=function(t,n){this.handlers[t]||(this.handlers[t]=[]),this.handlers[t].push(n),this.args[t]&&n.apply(void 0,this.args[t])},n.prototype.emit=function(n){for(var s=[],i=1;i<arguments.length;i++)s[i-1]=arguments[i];this.handlers[n]&&this.handlers[n].slice().forEach((function(t){t.apply(void 0,s)}));this.args[n]=t([],s,!0)},n.prototype.off=function(t,n){var s=this.handlers[t],i=s.indexOf(n);-1!==i&&s.splice(i,1)},n.prototype.once=function(t,n){var s=this,i=function(){for(var o=[],r=0;r<arguments.length;r++)o[r]=arguments[r];n.apply(void 0,o),s.off(t,i)};this.on(t,i)},n}());export{n as default};