jQuery之Deferred对象详解(5)
我们可以利用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)
});
精彩图集
精彩文章