jquery中done和then有什么不同
导读:本文共933.5字符,通常情况下阅读需要3分钟。同时您也可以点击右侧朗读,来听本文内容。按键盘←(左) →(右) 方向键可以翻页。
摘要: vardefer=jQuery.Deferred();defer.done(function(a,b){console.log("a="+a+"b="+b);returna*b;}).done(function(result){console.log("result="+result);})... ...
目录
(为您整理了一些要点),点击可以直达。vardefer=jQuery.Deferred();defer.done(function(a,b){console.log("a="+a+"b="+b);returna*b;}).done(function(result){console.log("result="+result);}).then(function(a,b){console.log("a="+a+"b="+b);returna*b;}).done(function(result){console.log("result="+result);}).then(function(a,b){console.log("a="+a+"b="+b);returna*b;}).done(function(result){console.log("result="+result);});defer.resolve(2,3);
输出结果如下:
结果分析:
1、第一个done和第二个done都返回了defer.resolve( 2, 3 )
2、done中callback的返回值不会被传递
3、第二个done只有一个参数,接收了defer.resolve( 2, 3 )的第一个参数2,所以result是2
4、第一个then接收defer.resolve( 2, 3 ),接收两个参数,result是6,同时新建一个deferred object,传递result给deferred object
5、第三个done接收到了这个新的deferred object和传递的result,打印结果是6,并把这个新的deferred object传递给第二个then
6、第二个then现在接收新的deferred object,它只有一个参数,是result,所以参数b没有定义,返回的结果是NaN,同时又新建一个deferred object
7、第四个done接收一个新建的deferred object,传递的参数是NaN,打印的结果自然就是NaN
</div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
jquery中done和then有什么不同的详细内容,希望对您有所帮助,信息来源于网络。