jquery中done和then有什么不同

這篇文章給大家介紹jquery中done和then有什么不同,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

目前成都創(chuàng)新互聯(lián)已為千余家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁空間、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計、略陽網(wǎng)站維護等服務(wù),公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

var defer = jQuery.Deferred();
defer.done(function(a,b){
  console.log("a = " + a+"b = " + b);
  return a * b;
}).done(function( result ) {
  console.log("result = " + result);
}).then(function( a, b ) {
  console.log("a = " + a+"b = " + b);
  return a * b;
}).done(function( result ) {
      console.log("result = " + result);
}).then(function( a, b ) {
  console.log("a = " + a+"b = " + b);
  return a * b;
}).done(function( result ) {
  console.log("result = " + result);
});
defer.resolve( 2, 3 );

輸出結(jié)果如下:

jquery中done和then有什么不同

結(jié)果分析:

1、第一個done和第二個done都返回了defer.resolve( 2, 3 )

2、done中callback的返回值不會被傳遞

3、第二個done只有一個參數(shù),接收了defer.resolve( 2, 3 )的第一個參數(shù)2,所以result是2

4、第一個then接收defer.resolve( 2, 3 ),接收兩個參數(shù),result是6,同時新建一個deferred object,傳遞result給deferred object

5、第三個done接收到了這個新的deferred object和傳遞的result,打印結(jié)果是6,并把這個新的deferred object傳遞給第二個then

6、第二個then現(xiàn)在接收新的deferred object,它只有一個參數(shù),是result,所以參數(shù)b沒有定義,返回的結(jié)果是NaN,同時又新建一個deferred object

7、第四個done接收一個新建的deferred object,傳遞的參數(shù)是NaN,打印的結(jié)果自然就是NaN

關(guān)于jquery中done和then有什么不同就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

分享標題:jquery中done和then有什么不同
轉(zhuǎn)載來源:http://bm7419.com/article6/ijhoig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供營銷型網(wǎng)站建設(shè)、品牌網(wǎng)站制作自適應網(wǎng)站、定制開發(fā)建站公司、品牌網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)