我有一个使用 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/