2012-10-13 33 views
2

http://jsfiddle.net/f4hmL/235/當沒有ajax調用時,是否可以使用jQuery的。

function showData() { 
    alert("boop!"); 
} 

function method1() { 
    var dfd = $.Deferred(); 
    setTimeout(dfd.resolve(), 10000); 
    return dfd.promise(); 
} 

function method2() { 
    var dfd = $.Deferred(); 
    setTimeout(dfd.resolve(), 6000); 
    return dfd.promise(); 
} 

$.when(method1(), method2()).then(showData);​ 

我希望只看到「BOOP」顯示當兩個物體延期解決,但我立刻看到它。是否有可能實現這一目標? jQuery的「when」方法是否使用正確的函數?

回答

3

你沒有把正確的東西傳遞給setTimeout()。這是行不通的,因爲你立即調用dfd.resolve()和結果傳遞給setTimeout()在這一行:

setTimeout(dfd.resolve(), 10000); 

相反,你需要像這樣:

setTimeout(function() {dfd.resolve()}, 10000); 

它不會叫的決心,直到超時會觸發。

相關問題