亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

話不多說(shuō),直接上實(shí)例:

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、第一個(gè)done和第二個(gè)done都返回了defer.resolve( 2, 3 )

2、done中callback的返回值不會(huì)被傳遞

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

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

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

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

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

以上這篇jquery中done和then的區(qū)別(詳解)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:

相關(guān)文章

最新評(píng)論