jQuery Deferral Example
by klenwell
JavaScript
function AWorkOfStaggeringGenius() {
var self = {};
self.ready_as_promised = null;
self.init = function() {
self.ready_as_promised = new jQuery.Deferred();
self.delayed_init();
};
self.delayed_init = function() {
setTimeout(function() {
console.log("now I'm ready");
self.ready_as_promised.resolve();
}, 2000);
return self;
};
self.start = function() {
console.log('start: will start when ready:', self.ready_as_promised.state());
self.ready_as_promised.done(function() {
console.log('starting now!');
});
return self;
};
self.init();
return self;
};
function GeniusHandler() {
var self = {};
self.genius = null;
self.init = function() {
self.genius = new AWorkOfStaggeringGenius();
};
self.start_work = function() {
self.genius.start();
};
self.init();
return self;
}
var work = new AWorkOfStaggeringGenius();
work.start();
var handler = new GeniusHandler();
handler.start_work();