JQuery promise

JavaScript

function foo() {
 	var deferred = jQuery.Deferred();
    setTimeout(function(){
        console.log("foo");
        deferred.resolve();
    }, 500);
  	return deferred.promise();
}

function bar() {
  console.log("bar");
}

function helloWorld() {
  foo().then(bar);
}

helloWorld();