2012-02-21 25 views
4

我正在使用$.when().then()以特定順序處理函數。一切都按預期工作,但如果when中的某個函數需要大量DOM操作或相對較慢的ajax請求,則then中的函數在when完成之前得到執行。我複製了結果上的jsfiddle:

http://jsfiddle.net/7ZSrv/3/

run_last應最後跑了,但你可以看到它沒有。我在這種情況下使用何時/然後不正確?任何幫助,將不勝感激!

回答

6
$.when(
    $.get('/', process1), 
    $.get('/', process2), 
    $.get('/', process3)) 
    .then(function(){ 
     $.get('/echo/html', run_last); 
    }); 

解決了這個問題。您將直接執行的$.get請求傳遞給then,而不是將執行獲取請求的回調。

+0

按預期工作,謝謝先生! – 2012-02-21 23:15:30