Я бегу match()
, чтобы пройти через массив или остановить идентификаторы. Для каждого идентификатора остановки я вызываю функцию, которая пересекает другой массив идентификаторов маршрута и через ответ вызова AJAX, чтобы найти совпадение.Как проверить, завершились ли функции, инициированные циклом?
Если он находит соответствие между идентификатором routeID и RouteID в массиве, он добавляет результат в другой массив в каждом цикле.
Моя проблема заключается в том, что я не могу найти способ определить, когда функции, вызванные циклом match(), будут завершены.
Причина, по которой мне нужно это сделать, заключается в том, что я должен убедиться, что массив jpFromStops
является полным и готовым к обработке другой функцией.
Каков наилучший способ для этого?
function match() {
// Array length is 5
for(i=0; i < fromStopsAr.length; i++) {
getFromRoutesStopId(fromStopsAr[i]);
}
console.log("Match Array Output: " + jpFromStops.toString());
}
function getFromRoutesStopId(id) {
jpFromStops=[];
tempAr = [];
jQuery.ajax({
type: "GET",
url: 'http://apu-url.com/v1/gtfs/routes/stopid/'+id+'?api_key=API_KEY',
dataType: "jsonp",
cache: false,
crossDomain: true,
processData: true,
success: function (data) {
$.each(matchRoutes, function(index, value) {
$.each(data.response, function(key, data) {
if(data.route_short_name.toString() == value) {
jpFromStops[jpFromStops.length] = id + ":" + value;
}
});
});
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("There is a problem");
}
});
}
консоли журнала Выход:
Match Array Output:
jp-main.js (line 177)
2
115
jp-main.js (line 199)
2
113
jp-main.js (line 199)
2
087
добавить счетчик, который приращениями на успех или ошибки, и когда он соответствует 'fromStopsAr.length', все готово. – Ted
@ brso05 Как бы это сделать, поскольку я многократно называю 'getFromRoutesStopId (id)'. – Yonkee
@Ted Будет ли этот счетчик находиться на закрытии блока успеха при вызове Ajax? – Yonkee