Skip to content

Instantly share code, notes, and snippets.

@rjungemann
Created October 8, 2010 18:45
Show Gist options
  • Save rjungemann/617305 to your computer and use it in GitHub Desktop.
Save rjungemann/617305 to your computer and use it in GitHub Desktop.
Simple event emitter class
var Emitter = function() {
var self = this;
var ls = {};
this.emit = function(event) {
var i, args = [];
for(i = 1; i < arguments.length; i++) {
var argument = arguments[i];
args.push(argument);
}
for(i = 0; i < ls[event].length; i++) {
ls[event][i].apply(self, args);
}
}
this.on = function(event, listener) {
if(!ls[event]) {
ls[event] = [];
}
ls[event].push(listener);
}
this.removeListener = function(event, listener) {
var l = [];
for(var i = 0; i < ls[event].length; i++) {
if(ls[event][i] != listener) {
l.push(ls[event][i]);
}
}
ls[event] = l;
}
this.removeAllListeners = function(event) {
ls[event] = [];
}
this.listeners = function(event) {
return ls[event];
}
}
try {
module.exports = Emitter;
} catch(e) {
Emitter;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment