$.then 链式回调操作在不同版本的jquery下的结果不一样
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2 <html xmlns="http://www.w3.org/1999/xhtml"> 3 <head> 4 <meta charset="utf-8"> 5 <title></title> 6 <script src="jquery-1.7.2.min.js"></script> 7 <!--<script src="http://code.jquery.com/jquery-latest.js">--></script> 8 <script type="text/javascript"> 9 function A(){ 10 var dtd =$.Deferred(); 11 setTimeout(function(){ 12 console.log("A"); 13 $("ul").append("<li>A</li>"); 14 dtd.resolve(); 15 },5000); 16 return dtd; 17 } 18 function B(){ 19 var dtd =$.Deferred(); 20 setTimeout(function(){ 21 console.log("B"); 22 $("ul").append("<li>B</li>"); 23 dtd.resolve(); 24 },4000); 25 return dtd; 26 } 27 function C(){ 28 var dtd =$.Deferred(); 29 setTimeout(function(){ 30 console.log("C"); 31 $("ul").append("<li>C</li>"); 32 dtd.resolve(); 33 },3000); 34 return dtd; 35 } 36 function D(){ 37 var dtd =$.Deferred(); 38 setTimeout(function(){ 39 console.log("D"); 40 $("ul").append("<li>D</li>"); 41 dtd.resolve(); 42 },200); 43 return dtd; 44 } 45 A().then(function(){return B();}).then(function(){return C();}).then(function(){return D();}) 46 47 </script> 48 </head> 49 <body> 50 <ul></ul> 51 52 </body> 53 </html>
当使用jquery1.7 时输出结果为ADCB
而使用最新jquery时输出为ABCD;