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. ...
随机推荐
- jdbcTemplate的Dao层封装
package com.easyrail.base.dao; import java.io.Serializable; import java.lang.reflect.Field; import j ...
- //解决validator验证插件多个name相同只验证第一的问题
//解决validator验证插件多个name相同只验证第一的问题 var validatorName = function () { if ($.validator) { $.validator.p ...
- C#面向对象特征的具体实现及作用详解
转自:http://www.jb51.net/article/42390.htm 众所周知,面向对象编程的特点为:封装.继承.多态.C#是一门完全面向对象的语言,由于比Java推出的时间还要晚,所以对 ...
- Hbase关于Java常用API举例
1. HBase相关对Admin操作的的API封装在HBaseAdmin中,封装了HBase常用操作的API 使用方法: pom.xml <!-- https://mvnrepository.c ...
- 通过图片对比带给你不一样的KMP算法体验
KMP 算法,俗称“看毛片”算法,是字符串匹配中的很强大的一个算法,不过,对于初学者来说,要弄懂它确实不易. 笔者认为,KMP 算法之所以难懂,很大一部分原因是很多实现的方法在一些细节的差异.体现在几 ...
- xcode报错http
问题: Xcode项目发送网络请求时,报错:“App Transport Security has blocked a cleartext HTTP (http://) resource load s ...
- c#解压文件
今天做了一个异步上传文件后再直接解压的一个东西.到解压这找了好多资料,做了1个多小时,贴出来,给自己张张记性. HttpPostedFileBase imgFile = Request.Files[0 ...
- 个人介绍和Github使用流程
我叫石莉静,来自网络工程143班,学号1413042067 我的兴趣爱好有看电影.动漫,听音乐,摄影,寻找美食等等. 个人编程能力:非常真诚的说,我的编程能力蛮差的,用C++写过一共写过...(很少很 ...
- python date
三天前 datetime.datetime.now() - datetime.timedelta(days=3)
- sql数据库表被锁,无法查询
查看被锁表: select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName ...