две функции должны быть выполнены в Javascript, вторая - только после того, как первый закончен.выполнить функцию по завершении другого, использовать ajaxComplete()?
Первый заполняет массив с помощью getJSON, а затем второй манипулирует им.
Однако getJSON является асинхронным, поэтому он не приостанавливает порядок выполнения, чтобы программа работала должным образом, чтобы массив завершил загрузку до выполнения второй функции. Как использовать JQuery ajaxComplete() или обратный вызов getJSON, чтобы просто запустить вторую функцию после завершения загрузки данных через getJSON.
Спасибо.
вот код:
function fetch_ids(user)
var url = 'http://test.com/ids/' + escape(user) + '.json?callback=?';
// populate array ids[] with JSON data --uid[] array declared globally
$.getJSON(url, function(data) {
for(var i = 0; i < data.length; i++) ids[i] = data[i];
});
// test array and run alert
for(i=0;i<uid.length;i++){
for(j=0;j<ids.length;j++){
if(uid[i]==ids[j])
{alert('matched: ' + uid[i]);}
}
}
// finish test
}
Нет, к сожалению, это не работает. Речь идет о запуске второй функции после завершения выполнения $ .getJSON. – Adrian33
Я не понимаю ... что не так, если запустить второй вызов в качестве последней строки обратного вызова getJSON? Почему вам нужно дождаться завершения обратного вызова? – Seb
Если вам нужно заполнить массив, сделайте это при первом вызове или в обратном вызове getJSON; после этого вам не нужно ждать, пока он закончится; вы можете вызвать вторую функцию прямо там. Если нет, то, пожалуйста, обновите свой вопрос, указав, почему это так. – Seb