欢迎来到天天文库
浏览记录
ID:63497003
大小:12.19 KB
页数:3页
时间:2021-08-24
《jQuery中的Deferred和promise 的区分_》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、jQuery中的Deferred和promise的区分_这篇文章主要介绍了jQuery中的Deferred和promise的区分的相关资料,需要的伴侣可以参考下Deferred和Promise之间有什么区分呢?promise一个promise就是一个由异步函数返回的对象。当你想要自己编写一个这样的函数时你需要用法一个deferred。varpromise=$.ajax({url:"/myServerScript"});promise.done(mySuccessFunction);promise.fa
2、il(myErrorFunction);varpromise=$.ajax({url:"/myServerScript"});promise.then(mySuccessFunction,myErrorFunction);用法Promises的好处有以下几点:你可以多次调用done()和fail()函数,并用法不同的回调函数。或许你的一个回调函数用来停止动画,一个用来发起一个新的AJAX恳求,一个用来将接受到的数据展现给用户。varpromise=$.ajax({url:"/myServerScrip
3、t"});promise.done(myStopAnimationFunction);promise.done(myOtherAjaxFunction);promise.done(myShowInfoFunction);promise.fail(myErrorFunction);即使在AJAX调用完成之后,你依旧可以调用done()和fail()函数,并且回调函数可以立刻执行。不同的状态之间并不会发生变量混乱。当一个AJAX调用结束时,它保持了一个胜利状态或者失败状态,这个状态不会发生转变。你可以合并
4、promises。有时你需要同时进行两个AJAX恳求并且想要在两个AJAX恳求都胜利时调用一个函数。为了完成这个任务,你需要用法一个新的$.when()函数:varpromise1=$.ajax("/myServerScript1");varpromise2=$.ajax("/myServerScript2");$.when(promise1,promise2).done(function(xhrObject1,xhrObject2){//处理两个XHR对象});deferred简洁说,deferre
5、d对象就是jQuery的回调函数解决方案。在英语中,defer的意思是”延迟”,所以deferred对象的含义就是”延迟”到将来某个点再执行。一个deferred对象能做的和一个promise对象差不多,但是它有两个函数来触发done()和fail()函数。一个deferred对象拥有一个resolve()函数来处理一个胜利的结果并执行与done()相关的函数。reject()函数则用来处理失败的结果并执行与fail()相关的函数。你可以给resolve()和reject()函数都供应参数,然后它们都
6、将传递给与done()和fail()相关的回调函数。总结jQuery的ajax就是返回一个promise对象,里面含有done(),fail()方法;deferred就是实现返回这个promise对象的过程。...
此文档下载收益归作者所有