发布网友 发布时间:2022-04-30 10:12
共4个回答
懂视网 时间:2022-04-23 11:02
这次给大家带来done和then的区别,使用done和then的注意事项有哪些,下面就是实战案例,一起来看一下。jquery的deferred对象的done方法和then方法都能实现链式调用,但是他们的作用是有区别的,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
相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!
推荐阅读:
jQuery的Validate插件怎样验证输入值
jQuery EasyUI 折叠面板的使用
热心网友 时间:2022-04-23 08:10
then与so的区别:意思不同、用法不同、侧重点不同
一、意思不同
1.then意思:
adv. 那么;然后;当时;而且
adj. 当时的
n. 当时
2.so意思:
adv. 那么;这样;如此
adj. 真的;非常
pron. 这样
conj. 因此;所以;以便
二、用法不同
1.then用法:用作状语作“接着,于是,然后”解时也可位于句首,这时句子要用倒装语序。
例句:
He'll be looking for a new secretary then?
那么,他就要找个新秘书了?
2.so用法:用作副词时常用于形容词或其他副词之前,用于表示程度,作“这么,那么”解。
例句:
He felt pity for a man suffering so much.
他对那个受过那么多痛苦的人感到同情。
三、侧重点不同
1.then侧重点:用于对已经提到过或刚提到过的某物表示一般的看法,可译作“则是,就是”。
2.so侧重点:用于代替已经陈述的事物,尤用在接that...的动词之后。
热心网友 时间:2022-04-23 09:28
一, 在这俩词因为翻译成汉语都有' 因此' , '所以' 法而产生疑问的情况下, 首先要依靠字典中对这热心网友 时间:2022-04-23 11:03
then意为 那时; 那儿; 其次; 这儿 那么的意思,