JQuery AJAX один за другим - PullRequest
       0

JQuery AJAX один за другим

1 голос
/ 07 июля 2011

Я пытаюсь запустить два ajax-запроса один за другим. Итак, я мог бы использовать функцию ajax success ():

$.ajax({
    ...
    success: function() {
        //here the second ajax request
    }
});

Проблема в том, что первый ajax-запрос выполняется только тогда, когда условие истинно. Итак, мой код выглядит так:

if($cond) {
    $.ajax({
        ...
    });
}
$.ajax({
    ...
});

Как я могу выполнить эти запросы по одному? Или это стандартно, что второе выполняется только тогда, когда первое закончено?

1 Ответ

5 голосов
/ 07 июля 2011

jQuery 1.5 представил отложенные объекты [документы] и $.ajax [документы] возвращает один:

$.ajax({
   //...
}).then(function() {
    $.ajax({
        //...
    });
});

Ссылка: deferred.then [документы]

Обновление:

В вашем случае вы можете сделать это:

var deferred = jQuery.Deferred();
deferred.resolve();  // <- I think you need this here but I'm not sure.

if($cond) {
    deferred = $.ajax({
        ...
    });
}
deferred.then(function() {
    $.ajax({
      //...
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...