Skip to content

Instantly share code, notes, and snippets.

@dmvt
Created September 20, 2017 21:32
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dmvt/ebe3236784a7adda11886b962971eb86 to your computer and use it in GitHub Desktop.
Save dmvt/ebe3236784a7adda11886b962971eb86 to your computer and use it in GitHub Desktop.
(function(a){
var Reactor = a.Reactor = new function(){
var self = this;
self.__core__ = [];
self.__pid__ = 0;
self.__speed__ = 750;
// Controls
self.adjustSpeed = function(speed) {
var defaultSpeed = self.__speed__;
self.__speed__ = speed;
self.restart();
setTimeout(function() {self.__speed__ = defaultSpeed;}, 100);
};
self.start = function() {
self.__pid__ = setInterval(self.tick, self.__speed__);
};
self.stop = function() {
clearInterval(self.__pid__);
self.__pid__ = 0;
};
self.restart = function() {
self.stop();
self.start();
};
// Interface
self.push = function(arg) {
self.__core__.push(arg);
App.log('pushed to Reactor', arg);
};
self.running = function() {
return self.__pid__ !== 0;
};
self.tick = function() {
if(self.__core__.length > 0) {
self.__core__.shift()();
}
};
}
})(App);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment