最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

done和then的区别

来源:动视网 责编:小采 时间:2020-11-27 19:59:37
文档

done和then的区别

done和then的区别:这次给大家带来done和then的区别,使用done和then的注意事项有哪些,下面就是实战案例,一起来看一下。jquery的deferred对象的done方法和then方法都能实现链式调用,但是他们的作用是有区别的,then方法中如果你传递的方法有返回值,那么他会传递给下一个链式
推荐度:
导读done和then的区别:这次给大家带来done和then的区别,使用done和then的注意事项有哪些,下面就是实战案例,一起来看一下。jquery的deferred对象的done方法和then方法都能实现链式调用,但是他们的作用是有区别的,then方法中如果你传递的方法有返回值,那么他会传递给下一个链式
 这次给大家带来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 折叠面板的使用

文档

done和then的区别

done和then的区别:这次给大家带来done和then的区别,使用done和then的注意事项有哪些,下面就是实战案例,一起来看一下。jquery的deferred对象的done方法和then方法都能实现链式调用,但是他们的作用是有区别的,then方法中如果你传递的方法有返回值,那么他会传递给下一个链式
推荐度:
标签: 区别 then done
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top