Mam następujący scenariusz, potrzebuję danych z konkretnego adresu URL. Napisałem funkcję, która przyjmuje parametr "url". Wewnątrz funkcji mam metodę $ http.get, która wywołuje adres URL. Dane mają być zwrócone do funkcji wywołującejsynchroniczne połączenie http w 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;
}
Problem jest następujący, $ http.get jest asynchroniczna, zanim odpowiedź jest naciągane, funkcja zwraca. Dlatego funkcja wywołująca pobiera dane jako pusty ciąg znaków. Jak zmusić funkcję, aby nie zwracała, dopóki dane nie zostaną pobrane z adresu URL?
Co jest złego w korzystaniu z oddzwonienia lub obietnicy, jak zwykle? – Marty
Możesz sam powrócić do funkcji powodzenia i błędu, które można dalej wykorzystać ... – binariedMe