2013-11-11 3 views
0

Я пытаюсь получить некоторые данные с сервера с помощью JSON. Эта функция ниже делает вызов AJAX. Когда я использую эту функцию как есть, ничего не возникает. Данные, предоставленные в этом вызове AJAX, берутся из предыдущего вызова AJAX.Цепочки вызовов AJAX (один за другим)

routeNames(likedRoutes, function(response){ 
     $.each(response, function(key, value){ 
      alert(value['routeName']); 
     }); 
    }); 

Но когда перед вызовом этой функции я добавляю одно предупреждение(), все работает. Я предполагаю, что есть некоторые проблемы времени, как решить такие проблемы времени?

+0

Можете ли вы показать свои призывы ajax и то, как вы используете этот кусок кода – megawac

+0

Я знаю, что это было какое-то время, но для того, чтобы сделать это полезным для других, вам нужны были вызовы ajax в порядке или они оба стреляют сразу, но вам нужно что-то сделать, когда оба сделаны? – m59

+0

@ m59 Да. Я хотел, чтобы второй вызов Ajax зависел от данных, полученных от первого вызова Ajax. –

ответ

0

Решенный с небольшим количеством грязных трюков.

Введите вторую функцию вызова ajax в функцию обратного вызова первого запроса. Таким образом, первый запрос займет свое время (асинхронный), а второй запрос зависит от того, когда это удастся.

+5

Это вообще не грязный трюк, это правильный способ решить проблему. – Alxandr

+0

Действительно? Отлично. –

+1

Использование обещаний - лучший способ пойти. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise –

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