2014-06-04 3 views
3

Как настроить код для запуска, пока ждут обещания jQuery.Deferred? Так как:Обратный вызов отложенного для выполнения в ожидании обещания

$.when(someAJAX).whatever(function() { 
    // run this while the AJAX is loading 
}).done(function() { 
    // run this when it is done 
}); 

Я проверил the docs, и ничего не нашли, но, может быть, я пропустил что-то (deferred.progress() здесь не работает).

ответ

2

Я думаю, что вы хотите гораздо проще, чем то, что вы пытаетесь сделать. Вместо этого вы можете сделать это:

$.when.apply($, arrayOfPromises).done(function() { 
    // code here when ajax call is done 
}); 
// this code will execute right after the ajax call was initiated 
// put code here to set state while ajax is loading 
+0

Ааа, это умно. Благодаря! Кстати, причина, по которой я использую '$ .when()', - это потому, что у меня есть массив обещаний (так что у меня на самом деле есть '$ .when.apply (обещает) ...' в моем коде). Я просто решил предложить упрощенную модель здесь :) – Bluefire

+0

@Bluefire - Хорошо, тогда вы можете использовать '$ .when (массив обещаний)' вместо '$ .ajax()' В моем ответе. – jfriend00

+0

Да, я решил, что это сработает: P – Bluefire

Смежные вопросы