Skip to content

Instantly share code, notes, and snippets.

@magnificogeo
Created December 17, 2014 06:56
Show Gist options
  • Select an option

  • Save magnificogeo/c6782c9f65b41064d7b8 to your computer and use it in GitHub Desktop.

Select an option

Save magnificogeo/c6782c9f65b41064d7b8 to your computer and use it in GitHub Desktop.
Observable and event emitters and event handlers practice
Observable = {
observers : {
start_observers : [],
processing_observers : [],
end_observers : []
},
messages : [],
events : [],
notifyObservers : function(event, message) {
this.observers[event+'_observers'][0](message);
},
doCrazyoperation : function() {
this.notifyObservers('start', 'we are going to start');
for (var i = 0; i < 9999999999; i++) {
if (i == 999999999) {
this.notifyObservers('processing', 'we are at' + i);
}
}
this.notifyObservers('end', 'operation ended');
},
on : function(event, observer) {
this.events.push(event);
this.observers[event+'_observers'].push(observer);
}
}
ObserverOne = {
callback : function(message) {
if (message != undefined)
console.log("Ob1" + message);
}
}
Observable.on('start', function(message) {
console.log('start event handler:' + message);
});
Observable.on('processing', function(message) {
console.log('processing event handler:' + message);
});
Observable.on('end', function(message) {
console.log('end event handler:' + message);
});
Observable.doCrazyoperation();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment