龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > web编程 > Javascript编程 >

jQuery之Deferred对象详解(5)

时间:2014-09-11 12:03来源:网络整理 作者:网络 点击:
分享到:
我们可以利用deferred接口,使得任意操作都可以用done()和fail()指定回调函数。 复制代码 代码如下: Twitter = { search:function(query) { var dfr = $.Deferred(); $.ajax({ u

我们可以利用deferred接口,使得任意操作都可以用done()和fail()指定回调函数。

复制代码 代码如下:

Twitter = {
  search:function(query) {
    var dfr = $.Deferred();
    $.ajax({
     url:"http://search.twitter.com/search.json",
     data:{q:query},
     dataType:'jsonp',
     success:dfr.resolve
    });
    return dfr.promise();
  }
}

使用方法如下:

复制代码 代码如下:

Twitter.search('intridea').then(function(data) {
  alert(data.results[0].text);
});

deferred对象的另一个优势是可以附加多个回调函数。
复制代码 代码如下:

function doSomething(arg) {
  var dfr = $.Deferred();
  setTimeout(function() {
    dfr.reject("Sorry, something went wrong.");
  });
  return dfr;
}
doSomething("uh oh").done(function() {
  alert("Won't happen, we're erroring here!");
}).fail(function(message) {
  alert(message)
});

精彩图集

赞助商链接