У меня есть следующий сценарий, мне нужны данные с определенного URL-адреса. Я написал функцию, которая принимает параметр 'url'. Внутри функции у меня есть метод $ http.get, который вызывает вызов URL. Данные должны быть возвращены в вызывающую функциюсинхронный http-вызов в angularJS
var getData = function (url) {
var data = "";
$http.get(url)
.success(function(response, status, headers, config) {
data = response;
})
.error(function(errResp) {
console.log("error fetching url");
});
return data;
}
Проблема заключается в следующем, $ http.get асинхронный, перед ответом забирается, функция возвращает. Поэтому вызывающая функция получает данные как пустую строку. Как заставить функцию не возвращаться до тех пор, пока данные не будут получены из URL-адреса?
Что не так с использованием обратного вызова или обещания, как обычно? – Marty
Вы можете вернуть функцию успеха и ошибки, которая может быть использована далее ... – binariedMe