AngularJS возвращает два запроса http get только после разрешения
У меня есть приложение Angular, и в контроллере мне нужно вызвать функцию, которая делает два http-запроса get, и мне нужна эта функция, чтобы возвращать эти значения только тогда, когда они разрешены. Я не могу сделать их в разрешении $ routeProvider, потому что эта функция нуждается в значении, полученном в том же контроллере.
Я показываю часть контроллера:
function myController(info) {
var vm = this;
vm.name = info.data.name;
vm.extra_data = MyService.getExtras(name);
}
И вот часть кода сервиса:
function myService($http, $q, API_EVENT1, API_EVENT2) {
return {
getExtras: getExtras
}
function getExtras(name) {
var request1 = API_EVENT1 + '/' + name;
var request2 = API_EVENT2 + '/' + name;
}
}
Функция не завершена из-за того, что я попробовал несколько методов, но мне это не удалось.
Моя проблема заключается в том, как вернуть (в функции getExtras) оба результата запросов. Я пытался использовать $ q.defer, $ q.all и обещания, но я не смог этого добиться.
Например, используя $ q.all, я получил результат, но когда я вызываю функцию, объект extra_data не определен, поскольку запросы выполнялись асинхронно.
Заранее благодарю за ваши ответы.