最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

jquery中done和then的區(qū)別(詳解)

 更新時間:2017年12月19日 09:57:54   作者:三十億少女的夢  
下面小編就為大家分享一篇jquery中done和then的區(qū)別(詳解),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

jquery的deferred對象的done方法和then方法都能實現鏈式調用,但是他們的作用是有區(qū)別的,then方法中如果你傳遞的方法有返回值,那么他會傳遞給下一個鏈式調用的方法。而done方法與此相反,你傳遞的方法就算有返回值,done方法也不會把你的返回值傳給下一個鏈式調用的方法的,

話不多說,直接上實例:

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的區(qū)別(詳解)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:

相關文章

最新評論

牙克石市| 增城市| 赞皇县| 上林县| 平原县| 长治县| 宝鸡市| 秀山| 肇东市| 松阳县| 凌源市| 阳曲县| 饶河县| 绩溪县| 镇江市| 兴安盟| 潜山县| 忻州市| 柏乡县| 静乐县| 米林县| 雷州市| 甘南县| 浦江县| 浮梁县| 丰宁| 伊川县| 綦江县| 莲花县| 全南县| 长顺县| 定边县| 云梦县| 衡东县| 永川市| 马边| 乡城县| 大姚县| 平凉市| 定兴县| 察隅县|