Обычно я делаю
$http({
method:'GET',
url: 'exmapleURL',
params: {someParams}
}).then(function(response) {
console.log(response); // response contains data I need
});
Теперь мне нужно выполнить несколько таких вызовов, и я хотел бы дождаться завершения всех из них, прежде чем что-то делать со своими ответами, и $ q.all ()Кажется, это хорошее место для начала.
В справочнике по сервисному API AngularJS $ q - документ $ q.all ,
все (обещания)
Объединяет несколько обещаний в одно обещание, которое разрешается при разрешении всех входных обещаний.
Возвращает: Возвращает одно обещание, которое будет разрешено с помощью массива /хэш значений, каждое значение соответствует обещанию с тем же индексом / ключом в массиве / хеше обещаний. Если какое-либо из обещаний разрешается с отклонением, это получающееся обещание будет отклонено с тем же значением отклонения.
Означает ли это, что если я передам массив запросов (например, $ q.all(вызовы) .then (ответ)), возвращенные обещания находятся в массиве в том же порядке , в котором передаются вызовы? Могу ли я сделать что-то вроде response[0]
, чтобы получить данные ответа, возвращенные 0-м вызовом? Спасибо.