jquery的deferred对象

1.$.Deferred 生成一个deferred对象。  //var dtd = $.Deferred;

2.dtd.done()指定操作成功时的回调函数。

3.dtd.fail()指定操作成功时的回调函数。

4.dtd.resolve()手动改变dtd对象的运行状态为"已完成",从而立即触发done()方法。

5.dtd.reject()这个方法与dtd.resolve()正好相反,调用后将dtd对象的运行状态变为"已失败",从而立即触发fail()方法。

6.$.when()为多个操作指定回调函数。

7.dtd.when()有时为了省事,可以把done()和fail()合在一起写,这就是then()方法。

  $.when($.ajax( "/main.php" ))

  .then(successFunc, failureFunc );

如果then()有两个参数,那么第一个参数是done()方法的回调函数,第二个参数是fail()方法的回调方法。如果then()只有一个参数,那么等同于done()。

例子:

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

 

posted @ 2015-11-18 17:52  简惬  阅读(206)  评论(0编辑  收藏  举报