2012-02-21 101 views
2

我是jquery延遲的新手。在這裏我有一個簡單的examplejQuery推遲

有人可以告訴我爲什麼done函數(「現在是我的時間」)在其他函數完成之前被觸發?

在此example這些傢伙還創建一個延遲對象並返回一個承諾,我也一樣。
我該怎麼改變我的小例子來獲取完成的功能僅此6秒(超時後)解僱?

非常感謝提前
沃爾夫岡

回答

6

你應該傳遞給done()方法的功能,而是你立即調用console.log()和返回值傳遞給done()。你應該寫:

$.when(test()).done(function() { 
    console.log("now it's my time"); 
}); 

相反的:

$.when(test()).done(console.log("now it's my time")); 

你會發現一個更新的小提琴here

+0

太棒了!謝謝沃爾夫岡。 – 2012-02-21 16:26:47