dojo异步编程 dojo/Deferred

本文介绍了JavaScript中的事件回调机制,并以dojo/Deferred为例,展示了如何在异步操作中使用Deferred对象。通过一个封装websocket请求公共模块的例子,解释了Deferred在处理异步返回值时的作用,强调了then方法返回的仍是异步对象,允许链式调用。
摘要由CSDN通过智能技术生成

Email:longsu2010 at yeah dot net

JavaScript的事件回调真的很棒,比如AJAX获取数据在数据返回时执行某函数,比如websocket获取数据后执行某函数,比如JSONP……

dojo的dojo/Deferred用于开启一个异步程序,对于封装通用组件特别有用。

下面介绍dojo/Deferred的用法, 从一个小例子开始。(本例使用chrome)

require(["dojox/store/proxyStore", "dojo/Deferred"],function( ProxyStore, Deferred){
	var deferred = new Deferred();
	// 设置回调函数
	deferred.then(function(args){
		console.log(args);
	},function(args){
		console.log(args);
	},function(args){
		console.log(args);
	});
	// 更新状态
	deferred.progress("progress");
	// 正常完成
	deferred.resolve("resolve");
	// 有错误发生
	// deferred.reject();
	// 取消异步程序
	// deferred.cancel();
});	

可以看出使用Deferred需要先创建一个Deferred对象,之后用then方法设置该对象的回调函数,之后可以用例子中的其他几个函数来更新Deferred对象的状态。Deferred对象会根据不同的状态来调用不同的
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值