您好,登錄后才能下訂單哦!
這篇文章給大家介紹jquery中done和then有什么不同,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
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 );
輸出結果如下:
結果分析:
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
關于jquery中done和then有什么不同就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。