Edit in JSFiddle

function wait(timeout) {
    var deferred = $.Deferred();
    setTimeout(deferred.resolve, timeout);
    return deferred.promise();
}


wait(3000).done(function() {
   alert('3秒経過'); 
});
<p>3秒待って</p>