Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.07.2017, 14:47
Профессор
Отправить личное сообщение для dima85 Посмотреть профиль Найти все сообщения от dima85
 
Регистрация: 14.03.2010
Сообщений: 194

Дожидаемся загрузки и начинает грузить следующий файл
В jsons.url хронятся url на json файлы, каждый из них нужно загрузить и содержимое добавить в jsonOtvet, но есть такой нюанс, нужно дожидатся загрузки, то есть загрузился первый, добавляем его в jsonOtvet, только потом грузим второй и так далее.
Вот мой код, что я делаю не так?
var jsonOtvet;
       for(i = 0;i<jsons.url.length;i++) {
        xmlHttp.open('GET', jsons.url[i],true);
        xmlHttp.send(null);
        xmlHttp.onload = function(e) {
         if (xmlHttp.status==200){
          jsonOtvet.push(xmlHttp.responseText);
         } else {
          jsonOtvet.push('{"'+jsons.url[i]+'":"file not found"}]');
         }
         return false;
        }
        return true;
       }


alert(JSON.stringify(jsonOtvet));

Последний раз редактировалось dima85, 15.07.2017 в 15:00.
Ответить с цитированием
  #2 (permalink)  
Старый 15.07.2017, 15:25
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,145

dima85,
оформить отдельной функцией, убрать for и
var i = 0;
(function foo()
{
xmlHttp.onload = function(e) {
i++;
if(i < jsons.url.length) foo()

})()
Ответить с цитированием
  #3 (permalink)  
Старый 15.07.2017, 20:24
Профессор
Отправить личное сообщение для dima85 Посмотреть профиль Найти все сообщения от dima85
 
Регистрация: 14.03.2010
Сообщений: 194

Спасибо, разобрался.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск