test-whiteboard
Version:
https://gitlab.gridsum.com/gov_law_tech/FrontEnd/whiteboard
36 lines (32 loc) • 695 B
JavaScript
export default class EventEmitter{
constructor(){
this.callbacks={
};
}
on (key,callback) {
if(!this.callbacks)
{
this.callbacks={};
}
if(!this.callbacks[key])
{
this.callbacks[key] = [];
}
this.callbacks[key].push(callback);
}
emit (key,...args) {
if(!this.callbacks)
{
this.callbacks={};
}
var events = this.callbacks[key];
if(!events)
{
return;
}
for(var i=0;i<events.length;i++)
{
events[i].apply(this,args);
}
}
}