var wait = function(dtd) { var tasks = function() { alert("执行完毕!"); dtd.resolve(); // 改变Deferred对象的执行状态 }; setTimeout(tasks, 5000); return dtd.promise(); }; $.Deferred(wait) .done(function() { alert("哈哈,成功了!"); }).fail(function() { alert("出错啦!"); });
from:http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_deferred_object.html