标签:
原文地址:http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_deferred_object.html
var wait = function(){
var dtd = $.Deferred(); //在函数内部,新建一个Deferred对象
var tasks = function(){
alert("执行完毕!");
dtd.resolve(); // 改变Deferred对象的执行状态 resolve()已完成 reject()拒绝
};
setTimeout(tasks,5000);
return dtd.promise(); // 返回promise对象 可以防止下面修改到dtd的执行状态
};
$.when(wait())
.done(function(){ alert("哈哈,成功了!"); })
.fail(function(){ alert("出错啦!"); });
.always(function(){}) //不管调用的是deferred.resolve()还是deferred.reject(),最后总是执行。
---------------------------------------------------------------------------------------------
var haha=function(){
var dtd=$.Deferred()
$(‘p‘).click(function(){
setTimeout(function(){
$(‘p‘).text(22222222222222)
dtd.resolve();
},2000)
})
return dtd.promise()
}
$.when(haha()).done(function(){
alert(999)
}).fail(function(){
alert(‘cuocuocuoc‘)
})
标签:
原文地址:http://www.cnblogs.com/leyi/p/4498632.html