【发布时间】:2013-02-01 12:27:49
【问题描述】:
我有一个对象,它使用 jQuery 的 Deferred 创建我自己的承诺,我会在超时后解决。然后我链接一个 ajax 调用,并返回承诺。
var Obj = function() {
var _obj = new $.Deferred();
setTimeout(function() {
_obj.resolve("Resolve One!");
}, 2000);
return _obj.promise();
}
new Obj()
.done(function(message) {
document.write(message);
return $.get("http://www.jsonip.com/");
})
.done(function(response) {
document.write(response);
})
我希望消息有“解决一个!”并响应来自 ajax 调用的响应
预期结果:
Resolve One!{"ip":"256.256.0.0","about":"/about"}
我得到的却是:
Resolve One!Resolve One!
由于我要返回$.get(),这是一个承诺,我希望旧的承诺会被来自 jQuery 的承诺覆盖。我应该怎么做才能让网页内容响应?
jsfiddle:http://jsfiddle.net/7zUKg/
【问题讨论】:
标签: jquery jquery-deferred promise