能anyoune请澄清什么是错用下面的代码(也读了不少文档和例子,但仍然有不知道发生了什么事)意外的延迟对象的行为
function t() {
var d = $.Deferred();
setTimeout(function(){
d.resolve();
}, 5000);
return d.promise();
}
function test() {
var dd = $.Deferred();
$.ajax("/echo/json/").done(function() {
dd = t();
dd.done(function() { alert(" dd.done inside ajax")});
});
dd.done(function() { alert(" dd.done outside ajax")});
}
test();
产量为(以〜5 s):
"dd.done inside ajax:"
为什么第二个.done不起作用?
你盛开了开发者控制台,以检查是否存在错误? – Pointy
没有错误,但奇怪的是,第一个console.log(替换alert和url在浏览器中运行)输出已经翻了一番。 W.T.H.? –