2012-02-21 84 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