Working with promises and deferred
http://www.bitstorm.org/weblog/2012-1/Deferred_and_promise_in_jQuery.html
by protasovams
HTML
<div id="result"></div>
JavaScript
$('#result').html('waiting...');
var promise = wait();
promise.done(result);
function result() {
$('#result').html('done');
}
function wait() {
var deferred = $.Deferred();
setTimeout(function() {
deferred.resolve();
}, 2000);
return deferred.promise();
}