Initial commit
This commit is contained in:
39
lib/synceventemitter.js
Normal file
39
lib/synceventemitter.js
Normal file
@@ -0,0 +1,39 @@
|
||||
'use strict';
|
||||
|
||||
function SyncEventEmitter () {
|
||||
this.listeners = new Map();
|
||||
}
|
||||
|
||||
SyncEventEmitter.prototype.on = function (ev, callback) {
|
||||
if (this.listeners.has(ev)) {
|
||||
this.listeners.remove(ev);
|
||||
}
|
||||
|
||||
this.listeners.set(ev, callback);
|
||||
|
||||
return this;
|
||||
};
|
||||
|
||||
SyncEventEmitter.prototype.emit = function (ev) {
|
||||
if (this.listeners.has(ev)) {
|
||||
let params = [];
|
||||
|
||||
for (var i = 1 ; i < arguments.length ; ++i) {
|
||||
params.push(arguments[i]);
|
||||
}
|
||||
|
||||
return this.listeners.get(ev).apply(undefined, params);
|
||||
}
|
||||
};
|
||||
|
||||
SyncEventEmitter.prototype.removeListener = function (ev) {
|
||||
if (this.listeners.has(ev)) {
|
||||
this.listeners.remove(ev);
|
||||
}
|
||||
};
|
||||
|
||||
SyncEventEmitter.prototype.hasListener = function (ev) {
|
||||
return this.listeners.has(ev);
|
||||
};
|
||||
|
||||
module.exports = SyncEventEmitter;
|
||||
Reference in New Issue
Block a user