Q.js promise
HTML
<script src="//cdnjs.cloudflare.com/ajax/libs/q.js/0.9.6/q.js"></script>
JavaScript
function foo() {
var deferred = Q.defer();
setTimeout(function(){
console.log("foo");
deferred.resolve();
}, 500);
return deferred.promise;
}
function bar() {
console.log("bar");
}
function helloWorld() {
foo().then(bar);
}
helloWorld();