`
v5browser
  • 浏览: 1130598 次
社区版块
存档分类
最新评论

dojo异步编程之dojo/promise/all模块(dojo/DeferredList替代者)

 
阅读更多
Email:longsu2010 at yeah dot net
之前写了篇博客“http://blog.csdn.net/tt361/article/details/8924918”,写的是dojo的异步编程(dojo/Deferred模块),本篇博客算是一个补充,写写必须两个Deferred对象都resolve时才调用某函数该怎么做。
可以通过dojo/promise/all模块完成,先看例子。
require(["dojo/promise/all", "dojo/Deferred"],function(all , Deferred){
					
	function defer1(){
		var deferred = new Deferred();
		setTimeout(function(){
			deferred.resolve("defer1");
			// deferred.reject("defer1");
		}, 2000);
		return deferred;
	}

	function defer2(){
		var deferred = new Deferred();
		setTimeout(function(){
			deferred.resolve("defer2");
		}, 200);
		return deferred;
	}

	all({
 	  	defer1 : defer1(),
  	        defer2 : defer2()
      }).then(function(rs){
   	        console.log(rs.defer1, rs.defer2);
      }, function(rs){
      	console.log(rs)
      });
});

非常的简单,all模块(一个函数)可以接收一个数组或者一个对象作为参数,数组的每个元素(对象的属性)需要是一个Deferred对象,当所有的Deferred对象都resolve时调用第一个回调函数,其中一个失败调用第二个回调函数。
第一个回到函数的参数是数组或者对象(视all的参数是数组还是对象而定);第二回调函数的参数是第一个失败Deferred对象的信息。

另外dojo/promise/first与all用法类似,不同的是前者为当有一个Deferred对象完成时(resolve或者reject)就调用回调函数,first随即完成。

dojo/DeferredList完成的功能与all相同但DeferredList是deprecated,不建议使用。
分享到:
评论

相关推荐

    dojo dojo实例 dojo例子 dojo资料 dojo项目 dojo实战 dojo模块 dojo编程

    dojo dojo实例 dojo例子 dojo资料 dojo项目 dojo实战 dojo模块 dojo编程

    dojo异步树.js

    dojo异步树.js 实现异步加载节点功能

    DOJO+C#做的B/S人事信息管理模块

    用DOJO 1.3.2 加 .NET 2.0(c#) 做的人事信息管理模块,用 ChartDirector(未破解) 做报表支持。

    dojo异步树js

    dojo异步树js

    Requirejs异步加载Dojo1.6

    使用Requirejs异步加载Dojo1.6,运行在Tomcat6下

    DOJO中文手册【出自dojo中国】

    DOJO中文手册【出自dojo中国】 页数60+ 简单介绍: Dojo 是一个用javascript语言实现的开源DHTML工具包。它是在几个项目捐助基础上建立起来的(nWidgets, Burstlib, f(m)), 这也是为什么叫它a \"unified\" toolkit的...

    精通Dojo by Dojo之父

    鉴于此,图灵公司引进了Dojo之父亲自撰写的《Mastering Dojo》一书。 本书对Dojo进行了全面而深入地阐述,包括基本使用和高级技巧。全书以一个能让读者迅速上手的简单示例开篇,进而读者们将了解到Dojo的核心,也...

    DOJO 学习笔记 dojo

    模块与包) 1 二、 Dojo学习笔记(2. djConfig解说) 4 三、 Dojo学习笔记(3. Dojo的基础对象和方法) 6 四、 Dojo学习笔记(4. dojo.string & dojo.lang) 9 五、 Dojo学习笔记(5. dojo.lang.array & dojo.lang.func & ...

    JavaScript异步编程的Promise模式

    异步模式在web编程中变得越来越重要,对于web主流语言Javscript来说,这种模式实现起来不是很利索,为此,许多Javascript库(比如 jQuery和Dojo)添加了一种称为promise的抽象(有时也称之为deferred)。通过这些库...

    dojo文档 dojo文档 dojo文档

    dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档

    精通Dojo PDF 扫描版 part1

    精通Dojo PDF 扫描版 part1/3 中文版,由Dojo作者完成,有参考价值

    dojo模块化实例

    dojo模块化实例,利用dojo.xd.js跨域调用js模块

    dojo精品中文教程(包一)

    AJAX架构之Dojo篇 Adding Ajax中文版 (DoJo) DOJO学习笔记(七)-日期控件DropdownDatePicker和DatePicker DOJO常用的验证函数 Dojo with Adobe AIR Dojo 工具包教程 Dojo 快速安装 Dojo和JSON建立无限级...

    dojo精品中文教程(全)

    AJAX架构之Dojo篇 Adding Ajax中文版 (DoJo) DOJO学习笔记(七)-日期控件DropdownDatePicker和DatePicker DOJO常用的验证函数 Dojo with Adobe AIR Dojo 工具包教程 Dojo 快速安装 Dojo和JSON建立无限级...

    dojo精品中文教程(包二)

    AJAX架构之Dojo篇 Adding Ajax中文版 (DoJo) DOJO学习笔记(七)-日期控件DropdownDatePicker和DatePicker DOJO常用的验证函数 Dojo with Adobe AIR Dojo 工具包教程 Dojo 快速安装 Dojo和JSON建立无限级...

    dojo,C#做的财务模块

    dojo,C#做的财务模块dojo,C#做的财务模块dojo,C#做的财务模块dojo,C#做的财务模块

    dojo档

    dojo 博文链接:https://pengxiao71.iteye.com/blog/155261

    dojo js dojo js

    dojo js dojo js dojo js dojo js dojo js dojo js dojo js

    Dojo.js核心dojo的javaScript类库Dojo.js核心dojo的javaScript类库Dojo.js核心dojo的javaScript类库

    dojo.js.核心jsDojo.js核心dojo的javaScript类库Dojo.js核心dojo的javaScript类库Dojo.js核心dojo的javaScript类库Dojo.js核心dojo的javaScript类库

    dojo/js/css 压缩打包工具 - 桌面版

    该工具可按指定的方案合并、压缩dojo或符合dojo规范的js文件、压缩css文件。 使用方便,无需安装配置, 下载置入dojo源码下的任意目录即可一键完成...发布版: http://www.ecranesoft.com/aauto/dojo/dojoBuild-bin.rar

Global site tag (gtag.js) - Google Analytics