发哥讲堂
专注前端、专注互联网
随笔- 15  文章- 0  评论- 8 
博客园  首页  新随笔  联系  管理  订阅 订阅

dojo学习笔记8.延迟

延迟入门

dojo.Deferred

 如下主题:

1、定义

2、状态和触发

3、ajax 

4、链式调用 

5、合并调用 

 

var def = new dojo.Deferred() 

def.then(function(res){ ... },function(err){...});

如果两个回调函数时,第二个是错误时执行。

 

 状态有三种:

1)unresolved  未处理,对象定义后的默认状态

2)resolved 已处理,执行def.resolve()后的状态,调用第一个回调函数;

2)rejected 驳回,执行def.rejected()后的状态,调用第二个回调函数;

 

dojo在Ajax函数中使用到延迟,调用dojo.xhrGet或dojo.xhrPost时,返回延迟对象。

 比如下面代码 

dojo.xhrGet({

  url:"...",

  load:function(content){...}

}) 

 

可以写成: 

 var def = dojo.xhrGet({url:"..."});

def.then(function(content){...});

 

也可直接写成

dojo.xhrGet(url:"...").then(function(content){...}); 

 

还有另一种情况:异步发送两次请求, 返回后在一个回调函数中处理。即延迟列表(DeferredList)

var def1 = dojo.xhrGet({url:"..."});

var def2 = dojo.xhrGet({url:"..."});

var defs = dojo.DeferredList([def1,def2]);

defs.then(function(results){

  var result1 = results[0][1];

  var result2 = results[1][1];

  ... 

}) 

 

posted @ 2011-05-14 23:05 发仔 阅读(163) 评论(0) 编辑 收藏
刷新评论刷新页面返回顶部
程序员问答社区,解决您的IT难题
博客园首页博问新闻闪存程序员招聘知识库
Copyright ©2012 发仔