文档章节

$.Deferred初学

L
 LM_Mike
发布于 2017/04/27 17:39
字数 354
阅读 7
收藏 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
博文 254
码字总数 40128
作品 0
深圳
db2关闭oracle兼容模式

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

主席
2012/05/17
1K
2
[Python] Twiested - 基于事件驱动的网络编程

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

长平狐
2013/06/03
279
0
[Python] Twiested - 基于事件驱动的网络编程

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

长平狐
2013/06/03
117
0
(转) Twisted : 第十三部分 使用Deferred新功能实现新客户端

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

水果糖
2016/01/27
13
0
众里寻他千百度,蓦然回首,那人却在,灯火阑珊处。----deferred对象!

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

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

没有更多内容

加载失败,请刷新页面

加载更多

下一页

1、Vue解决安卓4.4不兼容的问题

1.npm安装 npm install babel-polyfill--save-devnpm install es6-promise--save-dev package.json中会出现 "babel-polyfill": "^6.26.0","es6-promise": "^4.1.1", 2.main.js引入 impo......

阿K1225
14分钟前
1
0
mybatis generator 属性详解

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE generatorConfiguration PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN""http://mybatis.org/dtd/mybatis......

太黑_thj
18分钟前
1
0
windows nvm 安装 node

nvm 是 node 的版本控制管理 下面是下载 nvm 的地址,选择 nvm-setup.zip 下载 https://github.com/coreybutler/nvm-windows/releases 就是下一步下一步,一键安装 基本命令有: nvm arch [32...

U_I_A_N
20分钟前
0
0
js判断字符串中是否包含某个字符串

indexOf() indexof()方法可以返回某个指定的字符串值在字符串中首次出现的位置。如果要检索的字符串值没有出现,则该方法返回-1。 var str = "123";console.log(str.indexOf("3") != -1);...

小星星_cjx
32分钟前
0
0
函数式组件完整例子

之前创建的组件是比较简单,没有管理或者监听任何传递给他的状态,也没有生命周期方法。它只是一个接收参数的函数。 在下面这个例子中,我们标记组件为 functional,这意味它是无状态 (没有响...

tianyawhl
35分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部