Promise与Defer认识
1、deffer对象:jquery的回掉函数解决方案;含义是延迟到未来某个点再执行;
$.ajax("test.php") .done(function() { console.log("success"); }) .fail(function() { console.log("fail"); }) |
$.ajax("test.php") .done(function() { console.log("success"); }) .fail(function() { console.log("fail"); }) .done(function() { console.log("success two"); }) |
$.when($.ajax("test.php"), $.ajax("test2.php")) .done(function() { console.log("success"); }) .fail(function() { console.log("fail"); }) |
var dtd = $.Deferred(); // 新建一个deferred对象var wait = function (dtd) { var tasks = function() { alert("执行完毕!"); dtd.resole(); // 改变deferred对象的执行状态从”未完成“改为“已完成”,从而触发done()方法; // dtd.reject(); // 从“未完成”改为“已失败”,触发fail()方法; } setTimeout(tasks, ,5000); return dtd;}$.when(wait(dtd)) .done(function() { console.log("success"); }) .fail(function() { console.log("fail"); }) // dtd.resolve() 可以立即改变状态,5s后再触发多一次 |
var wait = function () { var dtd = $.Deferred(); // 新建一个deferred对象 var tasks = function() { alert("执行完毕!"); dtd.resole(); // 改变deferred对象的执行状态从”未完成“改为“已完成”,从而触发done()方法; } setTimeout(tasks, ,5000); return dtd.promise(); // 返回promise对象};$.when(wait()) .done(function() { console.log("success"); }) .fail(function() { console.log("fail"); }) |
$.Deferred(wait) // 接受一个函数名作为参数,注意是函数名 .done(function() { console.log("success"); }) .fail(function() { console.log("fail"); }) |
var dtd = $.Defferred();var wait = function(dtd) { var tasks = function() { alert("执行完毕!"); dtd.resole(); // 改变deferred对象的执行状态从”未完成“改为“已完成”,从而触发done()方法; } setTimeout(tasks, ,5000);}dtd.promise(wait);wait.done(function() { console.log("success"); }) .fail(function() { console.log("fail"); })wait(dtd); |
Promise与Defer认识的更多相关文章
- 关于defer.promise.then 异步的一个疑问 | 用柯里化做promise | 用递归做promise
疑问:感觉会报错,因为执行到defer.promise.then这时候还没到defer.resolve,因为异步读文件,总归会慢 解答:先执行defer.promise.then,是给callback ...
- promise的学习
为了解决回调地狱的问题,所以出现了promise的设计思想. promise的三种状态: pending 等待状态 resolved 完成状态 rejected 拒绝状态 promise的三种状态,只 ...
- Javascript Promise 学习 (中)
时隔多日,对promise有了多一点点的了解. 最近用angularjs 做开发,所以研究了一下它的 $q 功能不算很强大,算是简化版的 Q.js 参考了一下源码,不过我的等级还差很多... 作为学习 ...
- Node.js最新技术栈之Promise篇
前言 大家好,我是桑世龙,github和cnodejs上的i5ting,目前在天津创业,公司目前使用技术主要是nodejs,算所谓的MEAN(mongodb + express + angular + ...
- 160701、理解 Promise 的工作原理
Javascript 采用回调函数(callback)来处理异步编程.从同步编程到异步回调编程有一个适应的过程,但是如果出现多层回调嵌套,也就是我们常说的厄运的回调金字塔(Pyramid of Doo ...
- 160623、理解 Promise 的工作原理
Javascript 采用回调函数(callback)来处理异步编程.从同步编程到异步回调编程有一个适应的过程,但是如果出现多层回调嵌套,也就是我们常说的厄运的回调金字塔(Pyramid of Doo ...
- jQuery中的Deferred和promise
promise:http://www.alloyteam.com/2014/05/javascript-promise-mode/ 1 jQuery 中的 Deferred 和 Promises : ...
- 【转】angular Ajax请求
1.http请求 基本的操作由 $http 服务提供.它的使用很简单,提供一些描述请求的参数,请求就出去了,然后返回一个扩充了 success 方法和 error 方法的 promise对象(下节介绍 ...
- zepto源码研究 - deferred.js(jquery-deferred.js)
简要:zepto的deferred.js 并不遵守promise/A+ 规范,而在jquery v3.0.0中的defer在一定程度上实现了promise/A+ ,因此本文主要研究jquery v3. ...
随机推荐
- SSH网上答题系统质量属性
我要做的事网上答题系统,通过注册登录到答题页面. 这其中数据库的连接靠Hibernate,数据库的增删改查用Sruts2实现. 关于Struts2的学习,仅仅在action的表面上,可以在action ...
- cocos2d-x 图片性能测试
本文是原创文章,如需转载,请注明文章出处 本次测试使用的cocos2d-x版本是3.9,测试环境是XCode7自带的iphone5 一.JPG格式与PVR.CCZ格式对比 1.占用空间对比 a)不透明 ...
- css样式之 direction
今天看到 direction:rtl.一时有点发傻. 其实就是文本读取顺序.默认是ltr从左向右读.rtl是从右向左读取.
- C++ 标准库string字符串的截取
标准库的string有一个substr函数用来截取子字符串.一般使用时传入两个参数,第一个是开始的坐标(第一个字符是0),第二个是截取的长度. #include <iostream> #i ...
- 从mixin到new和prototype:Javascript原型机制详解
从mixin到new和prototype:Javascript原型机制详解 这是一篇markdown格式的文章,更好的阅读体验请访问我的github,移动端请访问我的博客 继承是为了实现方法的复用 ...
- Codeforces Round #373 (Div. 2) E. Sasha and Array
题目链接 分析:矩阵快速幂+线段树 斐波那契数列的计算是矩阵快速幂的模板题,这个也没什么很多好解释的,学了矩阵快速幂应该就知道的东西= =这道题比较巧妙的在于需要用线段树来维护矩阵,达到快速查询区间斐 ...
- vue-新建项目出错情况分析
1.状况一: 按照正常流程新建项目,最终运行npm run dev 的时候,就频频出错,最终找出问题原来在于部分依赖包丢失了,于是重新安装所需要的依赖包再运行项目便好了!
- javascript无线端的判断
经常在工作中要求网页做这样的处理判断:针对无线端的网页,我们需要兼容一种异于PC端的网页效果. 如下代码就可以实现无线端的判断: var mobs = ['android', 'ipad', 'ipo ...
- POJ 3414 Pots
Pots Time Limit:1000MS Memory Limit:65536KB 64bit IO Format:%I64d & %I64u Submit Status ...
- iOS开启隐藏文件以及显示文件方法
显示:defaults write com.apple.finder AppleShowAllFiles -bool true 隐藏:defaults write com.apple.finder A ...