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. ...
随机推荐
- Python_Day8_面向对象编程进阶
本节内容: 面向对象高级语法部分异常处理 经典类vs新式类 静态方法.类方法.属性方法 类的特殊方法 反射 Socket开发基础 经典类vs新式类 classical vs new style: 经典 ...
- Oracle 表连接
Oracle 表之间的连接分为三种: 1. 内连接(自然连接) 2. 外连接 (1)左外连接 (左边的表不加限制) (2)右外连接(右边的表不加限制) (3)全外连接(左右两表都不 ...
- svn-多个项目版本库和自动同步更新post-commit
由于项目测试需求,需要远程服务器上使用svn做版本控制. 需求: 1,项目test1,项目test2,各自独立版本库,各自独立用户权限,便于项目管理 2,同步提交,本地svn提交至版本库后,服务器上的 ...
- 在linux上部署web环境
1.升级python到2.7版本(通过源码包重新安装一个2.7版本的python):wget https://www.python.org/ftp/python/2.7.9/Python-2.7.9. ...
- 【转】常用聚类算法(一) DBSCAN算法
原文链接:http://www.cnblogs.com/chaosimple/p/3164775.html#undefined 1.DBSCAN简介 DBSCAN(Density-Based Spat ...
- 【教程】16岁黑客如何把Windows 95装进智能手表?【转】
来自美国佐治亚州的16岁黑客Corbin Davenport十分喜欢摆弄电子产品,最近他刚到手了一台三星Gear Live,并开始把玩起来.他发现Android Wear作为Android系统的改版并 ...
- @Transactional 事务管理
全面分析 Spring 的编程式事务管理及声明式事务管理 事务传播行为 所谓事务的传播行为是指,如果在开始当前事务之前,一个事务上下文已经存在,此时有若干选项可以指定一个事务性方法的执行行为.在Tra ...
- marquee标签实现页面内容的滚动效果
页面的自动滚动效果,可由javascript来实现, 但是有一个html标签 - <marquee></marquee>可以实现多种滚动效果,无需js控制. 使用marquee ...
- python pandas根据首字母选行
ret2.loc[ret2['INNERCODE'].map(lambda x:x[0]=='6' or x[0]=='3' or x[0]=='0' ),:]和matlab不一样的风格 - -直接用 ...
- META-INF文件夹是干啥的,META-INF文件夹的作用, META-INF文件夹能删吗
今天有人问到 META-INF文件夹是干啥的,META-INF文件夹的作用, META-INF文件夹能删吗,还有项目的META-INF下面一般会有个MANIFEST.MF 文件,都是干啥的. 百度搜了 ...