Files
modular/lib/synceventemitter.js
2015-07-06 00:39:38 +02:00

40 lines
850 B
JavaScript

'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;