$.Deferred的使用
来源:互联网 发布:洛阳网络设计 编辑:程序博客网 时间:2024/06/04 19:20
传统的异步操作会在操作完成之后,使用回调函数传回结果,而回调函数中则包含了后续的工作。这也是造成异步编程困难的主要原因。
嵌套式回调:
$('ele1').animate({ opacity: '.5'}, 4000, function() { $('ele2').animate({ width: '100px' }, 2000, function() { $('ele3').animate({ height: '0' }, 2000); });});上面的代码编程逻辑也是正确的,但是针对这样的异步嵌套的回调逻辑,当我们的嵌套越多,代码结构层级会变得越来越深。首先是阅读上会变得困难,其次是强耦合,接口变得不好扩展。我们需要一种模式来解决这种问题,这就是Promises所要做的事情。 为了让前端们从回调的地狱中回到天堂, jQuery 也引入了 Promise 的概念。 Promise 是一种令代码异步行为更加优雅的抽象,有了它,我们就可以像写同步代码一样去写异步代码。这个东东看起来很复杂,实际上我们只要抓住核心的使用就可以了
通过$.Defeered处理:
$('button:last').click(function() { function animate1() { var dtd = $.Deferred(); // 生成Deferred对象 $("#block3").animate({ width: "50%" }, 2000, function() { dtd.resolve(); // 改变Deferred对象的执行状态 }); return dtd; } function animate2() { var dtd = $.Deferred(); // 生成Deferred对象 $("#block4").animate({ width: "50%" }, 2000, function() { dtd.resolve(); // 改变Deferred对象的执行状态 }); return dtd; } var anim = animate1(); anim.then(function() { $("#block3").text('block3动画动画直接结束'); return animate2(); }).then(function() { $("#block4").text('block4动画动画直接结束'); }); });通过$.Deferred处理过的代码,很明显没有了回调的嵌套,虽然代码量看起来多了点,但是实际上,每一个代码执行部分都被封装了起来,只留了Deferred的接口处理了,等于是我们把执行的流程控制交给了Deferred,这样的好处就是我们在写嵌套函数的时候,可以用deferred提供的管道风格编写同步代码了。
var dtd = $.Deferred(); //创建dtd.resolve(); //成功dtd.then() //执行回调
阅读全文
0 0
- $.Deferred的使用
- jquery的deferred使用详解
- jquery的deferred使用详解
- jquery的deferred使用详解
- jQuery的deferred对象使用详解
- jQuery deferred 使用方式的歪解
- jQuery的deferred对象使用详解
- jQuery的deferred对象使用笔记
- jQuery中deferred、promise对象的使用
- 使用jquery 的deferred 报错
- jQuery的deferred对象使用详解
- jQuery之Deferred对象的使用
- 使用Deferred的诗歌下载客户端
- jQuery的deferred对象使用详解
- jQuery - Deferred 对象使用
- twisted入门教程之八:使用Deferred的诗歌下载客户端
- JQ中的延迟对象deferred中的promise等的使用
- jQuery的deferred对象
- (springmvc+spring+mabatis)配置
- linux C/C++服务器后台开发面试题总结
- 栈-stack.peek和stack.pop的区别
- UVA 1476 A
- 分布式系统基础-远程过程调用(RPC)
- $.Deferred的使用
- SpringBoot注解大全
- ArduPilot存储管理 Storage EEPROM Flash
- Failed to load the set of active dashboards.问题解决
- QML 实现3D进度条(伪3D)
- Linux下的关机重启命令
- [codevs1418]愚蠢的矿工
- 数据结构|创建学生成绩的顺序表(实验2.1)
- 一个简单的爬虫程序