首页 > 代码库 > jQuery异步Deferred

jQuery异步Deferred

原文链接:http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_deferred_object.html

普通操作回调函数方法1

var wait = function(dtd){    var dtd = $.Deferred(); //在函数内部,新建一个Deferred对象    var tasks = function(){      alert("执行完毕!");      dtd.resolve(); // 改变Deferred对象的执行状态    };    setTimeout(tasks,5000);    return dtd.promise(); // 返回promise对象  };  $.when(wait())  .done(function(){ alert("哈哈,成功了!"); })  .fail(function(){ alert("出错啦!"); });

 普通操作回调函数方法2

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("出错啦!"); });

  普通操作回调函数方法3

 

var dtd = $.Deferred(); // 生成Deferred对象  var wait = function(dtd){    var tasks = function(){      alert("执行完毕!");      dtd.resolve(); // 改变Deferred对象的执行状态    };    setTimeout(tasks,5000);  };  dtd.promise(wait);  wait.done(function(){ alert("哈哈,成功了!"); })  .fail(function(){ alert("出错啦!"); });  wait(dtd);

 

jQuery异步Deferred