jq中 then 和 done的区别

这篇博客探讨了jQuery中deferred对象的then和done方法的区别。then方法允许链式调用并传递返回值,而done方法则不考虑返回值。通过一个示例展示了当deferred对象解决时,then接收并传递返回值,而done则不传递。在处理多个接口调用时,then更适合用于依赖上一步结果的情况。

jq中 then 和 done有什么区别?

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;
}).then(function(res){
	console.log(res); //  res = 2
})
defer.resolve( 2, 3 );

解析: 上面说到 done 不会传递给下一个链式调用的方法 , 所以then中的参数还是resolve中的2,
如果上面的dene换成then的话 那么res就会是6;
如果一个请求的方法中需要好几个接口的话,可能这几个接口都是相互调用的, 那么就需要用到then了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值