一、概述
在jquery中有种对象称之为延时对象,可以由 http请求方法$.get(), $.ajax(), $.post() 产生, 内置方法如下
也可以有jquery的延时方法 $.when(), $.Deferred()产生, 比较上面少了 http请求状态
二、使用
每个then中 return的值由下一个then接受,第一个then的参数 由 defered.resolve()或 deferd.rejected()传递。
1 var defered = $.Deferred(); 2 3 var promise1 = defered.then(function(data){ 4 alert(data);// 5 return data+=1; 6 }); 7 8 var promise2 = promise1.then(function(data){ 9 alert(data);//1 10 return data+=2; 11 }).then(function(data){ 12 alert(data);//12 13 return data+=3; 14 }); 15 16 promise3.done(function(data){ 17 alert(data);//123 18 });
19 defered.resolve(1);
真实项目中运用方式:
一、
var defered = $.Deferred(); defered.then(function(){ return func.getGameInfo();// getGameInfo return 一个ajax请求,产生延时对象 }).then(function(){ return func.service_info();//service_info return 一个ajax请求,产生延时对象 }); defered.resolve();