У меня есть что-то вроде этого:
fun1: function(){
var jqXHR = $.get(
"http://url.com",
"search=toto",
function(){});
jqXHR.fail(function (jqXHR, textStatus, errorThrown){
//do something
});
jqXHR.done(function (data,textStatus,jqXHR){
//do something
});
}
fun2: function(){
fun1();
//do something AFTER my AJAX requests are finished
}
Я хочу, чтобы ждать, пока мои resquests AJAX закончены, прежде чем продолжить. Для этого я обычно использовал функцию обратного вызова в fun1(). Но мой код теперь содержит несколько уровней обратных вызовов, и это выглядит беспорядочно. Тогда я хотел бы использовать метод $.when
, но я не знаю, как это сделать: в fun1
не отложенный объект, я не могу просто написать:
$.when(fun1()).then(//do something);
Вы посмотрели примеры на http://api.jquery.com/jQuery.when/? –