能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.? –