Я пытаюсь сохранить результаты функции json callback в массиве. В основном, что у меня сейчас есть массив gps-координат, которые я просматриваю, и для каждой пары координат я создаю скрипт, который отправляет запросы третьей стороне.Функция динамического json callbak получает только последнее значение
int j = 0;
while(j < points.length-3)
{
window['streetNames'+j] = function(json){
console.log("YO",j);
streetNames(json, j);
};
var reverse = document.createElement('script');
reverse.src = 'http://open.mapquestapi.com/nominatim/v1/reverse.php?format=json&json_callback=streetNames'+j+'&lat='+points[j]+'&lon='+points[j+1];
document.getElementsByTagName('head')[0].appendChild(reverse);
j = j + 2;
}
Для того, чтобы иметь возможность сохранять результаты в правильном порядке, я должен передать указатель на функцию обратного вызова, и единственным способом я нашел возможным прилипание индекс J с именем функции.
var streets = [];
function streetNames(json, t)
{
console.log("in streetNames", t);
streets[t] = json.address.road;
}
Однако, после выполнения сценария единственного экземпляра, который будет добавлен в массив улицы является последней из массива точек, то один из последнего индекса. Мой вопрос: не все ли gps-координаты запускают функцию ['streetNames' + j] = function (json)? Что я делаю неправильно?
спасибо большое, что сделал трюк! – user3253067