标签:
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("出错啦!"); });
标签:
原文地址:http://www.cnblogs.com/lixuemin/p/4975360.html