Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 13.05.2015, 09:44
Новичок на форуме
Отправить личное сообщение для denni Посмотреть профиль Найти все сообщения от denni
 
Регистрация: 23.10.2014
Сообщений: 4

Как дождаться окончания цикла обещаний?
Подскажите, как такое сделать. Мне нужно в цикле запустить асинхронные запросы и дождаться их завершение.
И как передать в обработчики текущее значение i ?

что-то типа:
for (var i = 0; i < links.length; i++) {
  $http.get(link[i]).
    success(function(data, status, headers, config) {
      >> response[i] = data;
    }).
    error(function(data, status, headers, config) {
      >> err[i] = status;
    });
}

и вот тут надо дождаться, когда будут получены все ответы и продолжить выполнение.
Ответить с цитированием
  #2 (permalink)  
Старый 13.05.2015, 10:08
Аватар для FireVolkhov
Аспирант
Отправить личное сообщение для FireVolkhov Посмотреть профиль Найти все сообщения от FireVolkhov
 
Регистрация: 17.04.2013
Сообщений: 88

$q.all([promise1, promise2, ...])
  .then (results) ->
    [result1, result2, ...] = results
Ответить с цитированием
  #3 (permalink)  
Старый 13.05.2015, 11:33
Новичок на форуме
Отправить личное сообщение для denni Посмотреть профиль Найти все сообщения от denni
 
Регистрация: 23.10.2014
Сообщений: 4

Сообщение от FireVolkhov Посмотреть сообщение
$q.all([promise1, promise2, ...])
  .then (results) ->
    [result1, result2, ...] = results
В том-то и дело, что я заранее не знаю, сколько будет асинхронных запросов.
Ответить с цитированием
  #4 (permalink)  
Старый 14.05.2015, 10:03
Аватар для FireVolkhov
Аспирант
Отправить личное сообщение для FireVolkhov Посмотреть профиль Найти все сообщения от FireVolkhov
 
Регистрация: 17.04.2013
Сообщений: 88

Сообщение от denni
В том-то и дело, что я заранее не знаю, сколько будет асинхронных запросов.
Что значит "я заранее не знаю, сколько будет асинхронных запросов"? в твоем примере кода "for (var i = 0; i < links.length; i++) {" массив links определенной длины
Вывод: Неверно поставлен вопрос -> дан не тот ответ
Ответить с цитированием
  #5 (permalink)  
Старый 14.05.2015, 10:11
Новичок на форуме
Отправить личное сообщение для denni Посмотреть профиль Найти все сообщения от denni
 
Регистрация: 23.10.2014
Сообщений: 4

Сообщение от FireVolkhov Посмотреть сообщение
$q.all([promise1, promise2, ...])
  .then (results) ->
    [result1, result2, ...] = results
Премного благодарен!
Вот так для меня более очевидно:
var promises = [];

for(var i = 0; i < links.length; i++) {
  promises.push(... async method ...);
}

$q.all(promises).then(...)
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как дождаться ПОЛНОЙ загрузки страницы? arma Events/DOM/Window 7 04.11.2009 20:05
Как правильно послать XML в POST запросе LowCoder AJAX и COMET 10 15.07.2009 23:20
Как приостановить выполнение цикла? SashaBorandi jQuery 3 13.02.2009 08:57
как отобразить в окне значения счетчика во время выполнения цикла FOR Алекс97 Общие вопросы Javascript 5 06.09.2008 10:36
как дождаться AJAX ответа scuter Общие вопросы Javascript 3 23.03.2008 05:54