Skip to content

Instantly share code, notes, and snippets.

@MPMoughan
Forked from wildlyinaccurate/event.js
Created January 15, 2018 19:07
Show Gist options
  • Save MPMoughan/e22a864e4fd860c8929b87acc17a302d to your computer and use it in GitHub Desktop.
Save MPMoughan/e22a864e4fd860c8929b87acc17a302d to your computer and use it in GitHub Desktop.
Really simple Javascript custom event system
var Event = function() {
var self = this;
self.queue = {};
self.fired = [];
return {
fire: function(event) {
var queue = self.queue[event];
if (typeof queue === 'undefined') {
return;
}
while (queue.length) {
(queue.shift())();
}
self.fired[event] = true;
},
on: function(event, callback) {
if (self.fired[event] === true) {
return callback();
}
if (typeof self.queue[event] === 'undefined') {
self.queue[event] = [];
}
self.queue[event].push(callback);
}
};
}();
// Basic usage
Event.on('counted.to::1000', function() {
doSomething();
});
for (i = 0; i <= 1000; i++) {
// Count to 1000...
}
Event.fire('counted.to::1000'); // doSomething() is called
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment