收藏 分销(赏)

jQuery中的Deferred和promise-的区别.doc

上传人:丰**** 文档编号:9713675 上传时间:2025-04-04 格式:DOC 页数:2 大小:15KB 下载积分:5 金币
下载 相关 举报
jQuery中的Deferred和promise-的区别.doc_第1页
第1页 / 共2页
jQuery中的Deferred和promise-的区别.doc_第2页
第2页 / 共2页
本文档共2页,全文阅读请下载到手机保存,查看更方便
资源描述
  这篇文章主要介绍了jQuery中的Deferred和promise 的区别的相关资料,需要的朋友可以参考下   Deferred和Promise之间有什么区别呢?   promise   一个promise就是一个由 异步函数返回的对象 。当你想要自己编写一个这样的函数时你需要使用一个deferred。   var promise = $.ajax({   url: "/myServerScript"   });   promise.done(mySuccessFunction);    promise.fail(myErrorFunction);    var promise = $.ajax({   url: "/myServerScript"   });    promise.then(mySuccessFunction,myErrorFunction);   使用Promises的好处有以下几点:   你可以多次调用done()和fail()函数,并使用不同的回调函数。或许你的一个回调函数用来停止动画,一个用来发起一个新的AJAX请求,一个用来将接受到的数据展示给用户。   var promise = $.ajax({ url: "/myServerScript" });   promise.done(myStopAnimationFunction); promise.done(myOtherAjaxFunction);    promise.done(myShowInfoFunction); promise.fail(myErrorFunction);   即使在AJAX调用完成之后,你依然可以调用done()和fail()函数,并且回调函数可以立即执行。不同的状态之间并不会发生变量混乱。当一个AJAX调用结束时,它保持了一个成功状态或者失败状态,这个状态不会发生改变。   你可以合并promises。有时你需要同时进行两个AJAX请求并且想要在两个AJAX请求都成功时调用一个函数。为了完成这个任务,你需要使用一个新的$.when()函数:   var promise1 = $.ajax("/myServerScript1");    var promise2 = $.ajax("/myServerScript2");   $.when(promise1, promise2).done(function(xhrObject1, xhrObject2) { // 处理两个XHR对象 });   deferred   简单说,deferred对象就是jQuery的回调函数解决方案。在英语中,defer的意思是”延迟”,所以deferred对象的含义就是”延迟”到未来某个点再执行。   一个 deferred对象 能做的和一个promise对象差不多,但是它有两个函数来触发 done()和fail()函数 。   一个deferred对象拥有一个resolve()函数来处理一个成功的结果并执行与done()相关的函数。reject()函数则用来处理失败的结果并执行与fail()相关的函数。   你可以给resolve()和reject()函数都提供参数,然后它们都将传递给与done()和fail()相关的回调函数。   总结   jQuery 的ajax 就是返回一个promise 对象,里面含有done(), fail()方法; deferred 就是实现返回这个promise 对象的过程。   
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服