Я использую angularJS, и я пытаюсь получить результат от серверной части, используя такой сервис:
app.factory('myService', ['$http', '$window', '$rootScope', function ($http, $window, $rootScope) {
return {
GetTypeName(typeID, callback) {
$http.get(backend_url + 'type/getById/' + typeID)
.success(function (response, status, headers, config) {
if (status === 200) {
callback(true, response);
} else {
callback(false);
}
})
.error(function (data, status, headers, config) {
callback(false);
});
}
} }]);
И я вызываю эту службу с этого контроллера:
getFormationsType = function(){
for (i = 0; i!= array.length;i++){
myService.GetTypeName(typeID, function (result, data) {
if(result){
console.log(data.name);
// do something with data.name here, and also need it outside of this func
} else{
console.log("error");
}
});
}}
Проблема в том, что когда функция выполняет службу, она не ждет результата и выпрыгивает из функции getFormationsType (), а затем выполняет другие действия перед тем, как вернуть результат.и мне нужен этот результат прямо сейчас.Поэтому мне нужна помощь, чтобы понять, как заставить службу ждать результата, прежде чем выскочить.
Спасибо.