国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

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

2019-11-19 14:41:43
字體:
供稿:網(wǎng)友

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

話不多說,直接上實例:

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é)果如下:

結(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

以上這篇jquery中done和then的區(qū)別(詳解)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 当雄县| 东辽县| 广宗县| 彭泽县| 隆安县| 盈江县| 诸城市| 榕江县| 昭苏县| 深圳市| 芜湖市| 昆明市| 喀喇沁旗| 曲靖市| 清徐县| 南乐县| 崇信县| 开封市| 屏山县| 嘉峪关市| 海林市| 东辽县| 子长县| 威宁| 英吉沙县| 台山市| 宁夏| 广南县| 洱源县| 大港区| 都江堰市| 玛沁县| 突泉县| 响水县| 洛隆县| 巴南区| 蒙自县| 南陵县| 吉木萨尔县| 绥江县| 资中县|