文档章节

$.Deferred初学

L
 LM_Mike
发布于 2017/04/27 17:39
字数 354
阅读 7
收藏 0
点赞 0
评论 0
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<script src="js/jquery-1.12.3.js"></script>
<title>play2</title>
</head>
<body>
<button id="mybtn">点击</button>
<div id="mydiv">添加数字...</div>
<script>
$(function(){
	var def = $.Deferred();  //新建一个延迟对象
	
	function func1(str){
		var $p = $("<p>"+str+1+"</p>")
		$("#mydiv").append($p);
	}
	function func2(str){
		var $p = $("<p>"+str+2+"</p>")
		$("#mydiv").append($p);
	}
	function func3(str){
		var $p = $("<p>"+str+3+"</p>")
		$("#mydiv").append($p);
	}
	
	def.done([func1,func2],func3);  //定义延迟对象完成后执行的函数,可以是单个函数或者数组函数
	
	$("#mybtn").click(function(e){
		def.resolve("数字:");  //延迟对象执行resolve(arg),那么该延迟对象的done()里的函数将被调用,参数ar也将传给里面的每一个函数
	});							   //本例中,相当于执行func1("数字:"),func2("数字:"),func3("数字:")	
});
</script>
</body>
</html>

下面这段出自阮一峰博客 http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_deferred_object.html

deferred对象的最大优点,就是它把这一套回调函数接口,从ajax操作扩展到了所有操作。也就是说,任何一个操作----不管是ajax操作还是本地操作,也不管是异步操作还是同步操作----都可以使用deferred对象的各种方法,指定回调函数。

	var def = $.Deferred();  //新建递延对象
	function wait(def){
		var task = function(){
			def.resolve("哈话");
		}
		setTimeout(task,3000);
		return def;  //返回递延对象
	}
	$.when(wait(def)).done(function(str){  //$.when()只接受递延对象作为参数,因此wait函数的return def意图很明显啦
		alert("我拉"+str);
	})
});

© 著作权归作者所有

共有 人打赏支持
L
粉丝 1
博文 246
码字总数 39812
作品 0
深圳
db2关闭oracle兼容模式

本人初学 知道可以用 db2set DB2DEFERREDPREPARE_SEMANTICS=YES 打开oracle的兼容模式 我想知道 如何关闭呢????

主席 ⋅ 2012/05/17 ⋅ 2

[Python] Twiested - 基于事件驱动的网络编程

介绍 twisted 是python下一个事件驱动的网络引擎库, 支持很多种的协议. 它包含了一个web服务, 多种IM客户端,服务端, 邮件服务协议. 由于规模庞大, twisted分成了几个sub-project. 一起或者分...

长平狐 ⋅ 2013/06/03 ⋅ 0

[Python] Twiested - 基于事件驱动的网络编程

介绍 twisted 是python下一个事件驱动的网络引擎库, 支持很多种的协议. 它包含了一个web服务, 多种IM客户端,服务端, 邮件服务协议. 由于规模庞大, twisted分成了几个sub-project. 一起或者分...

长平狐 ⋅ 2013/06/03 ⋅ 0

Twisted DeferredList用法

DeferredList 有时候,你想等所有的事件都发生后通知你,而不是每一个都通知一下。比如,你想等待在在一个列表里的所有连接都关闭后通知你,twisted.internet.defer.DeferredList 能够完成你...

疯子张 ⋅ 2013/12/26 ⋅ 0

(转) Twisted : 第十三部分 使用Deferred新功能实现新客户端

介绍 回忆下第10部分中的客户端5.1版。客户端使用一个Deferred来管理所有的回调链,其中包括一个格式转换引擎的调用。在那个版本中,这个引擎的实现是同步的。(即等待其执行再切到其它函数或...

水果糖 ⋅ 2016/01/27 ⋅ 0

众里寻他千百度,蓦然回首,那人却在,灯火阑珊处。----deferred对象!

jQuery的deferred对象详解 作者:阮一峰 一、什么是deferred对象? 开发网站的过程中,我们经常遇到某些耗时很长的javascript操作。其中,既有异步的操作(比如ajax读取服务器数据),也有同...

一颗星星变了心 ⋅ 2015/01/25 ⋅ 0

jquery deferred

jQuery的deferred对象详解作者: 阮一峰日期: 2011年8月16日jQuery的开发速度很快,几乎每半年一个大版本,每两个月一个小版本。每个版本都会引入一些新功能。今天我想介绍的,就是从jQuer...

LorinLuo ⋅ 2015/06/30 ⋅ 0

JQuery:deferred对象的方法

(1) $.Deferred() 生成一个deferred对象。 (2) deferred.done() 指定操作成功时的回调函数 (3) deferred.fail() 指定操作失败时的回调函数 (4) deferred.promise() 没有参数时,返回...

木子丰 ⋅ 2013/09/11 ⋅ 0

zg手册 之 twisted 开发(2)-- Deferreds 组件

Deferreds 异步回调序列 Deferred 本质上是一个回调函数的集合,twisted 提供了对函数延迟调用的机制。 在 twisted 内部,使用 Deferred 对象管理回调序列。当异步请求结果返回时,使用 Defe...

东昕 ⋅ 2014/06/24 ⋅ 0

(转) Twisted : 第八部分 使用Deferred的诗歌下载客户端

客户端4.0 我们已经对deferreds有些理解了,现在我们可以使用它重写我们的客户端。你可以在twisted-client-4/get-poetry.py中看到它的实现。 这里的getpoetry已经再也不需要callback与errba...

水果糖 ⋅ 2016/01/27 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

005. 深入JVM学习—Java堆内存参数调整

1. JVM整体内存调整图解(调优关键) 实际上每一块子内存区域都会存在一部分可变伸缩区域,其基本流程:如果内存空间不足,则在可变的范围之内扩大内存空间,当一段时间之后,内存空间不紧张...

影狼 ⋅ 11分钟前 ⋅ 0

内存障碍: 软件黑客的硬件视图

此文为笔者近日有幸看到的一则关于计算机底层内存障碍的学术论文,并翻译(机译)而来[自认为翻译的还行],若读者想要英文原版的论文话,给我留言,我发给你。 内存障碍: 软件黑客的硬件视图...

Romane ⋅ 44分钟前 ⋅ 0

SpringCloud 微服务 (七) 服务通信 Feign

壹 继续第(六)篇RestTemplate篇 做到现在,本机上已经有注册中心: eureka, 服务:client、order、product 继续在order中实现通信向product服务,使用Feign方式 下面记录学习和遇到的问题 贰 or...

___大侠 ⋅ 今天 ⋅ 0

gitee、github上issue标签方案

目录 [TOC] issue生命周期 st=>start: 开始e=>end: 结束op0=>operation: 新建issueop1=>operation: 评审issueop2=>operation: 任务负责人执行任务cond1=>condition: 是否通过?op3=>o......

lovewinner ⋅ 今天 ⋅ 0

浅谈mysql的索引设计原则以及常见索引的区别

索引定义:是一个单独的,存储在磁盘上的数据库结构,其包含着对数据表里所有记录的引用指针. 数据库索引的设计原则: 为了使索引的使用效率更高,在创建索引时,必须考虑在哪些字段上创建索...

屌丝男神 ⋅ 今天 ⋅ 0

String,StringBuilder,StringBuffer三者的区别

这三个类之间的区别主要是在两个方面,即运行速度和线程安全这两方面。 首先说运行速度,或者说是, 1.执行速度 在这方面运行速度快慢为:StringBuilder(线程不安全,可变) > StringBuffer...

时刻在奔跑 ⋅ 今天 ⋅ 0

java以太坊开发 - web3j使用钱包进行转账

首先载入钱包,然后利用账户凭证操作受控交易Transfer进行转账: Web3j web3 = Web3j.build(new HttpService()); // defaults to http://localhost:8545/Credentials credentials = Wallet......

以太坊教程 ⋅ 今天 ⋅ 0

Oracle全文检索配置与实践

Oracle全文检索配置与实践

微小宝 ⋅ 今天 ⋅ 0

mysql的分区和分表

1,什么是mysql分表,分区 什么是分表,从表面意思上看呢,就是把一张表分成N多个小表,具体请看mysql分表的3种方法 什么是分区,分区呢就是把一张表的数据分成N多个区块,这些区块可以在同一...

梦梦阁 ⋅ 今天 ⋅ 0

exception.ZuulException: Forwarding error

错误日志 com.netflix.zuul.exception.ZuulException: Forwarding error Caused by: com.netflix.hystrix.exception.HystrixRuntimeException: xxx timed-out and no fallback available. Ca......

jack_peng ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部