Есть вот такой простой код:
var $settings = {};
var data = {
baseUrl : location.pathname,
debug_mode : false
};
$settings.getDebugMode = function () {
if (!data.debug_mode) {
$http.get(data.baseUrl + '?r=jssettings/index').then(function (response) {
// console.log(response.data) // response приходит - все нормально.
return "1";
});
} else {
return "2";
}
return "3";
};
console.log($settings.getDebugMode()); // выводит 3!!!!
При чем если вызвать эту функцию под ряд раз 10, будет выводиться именно тройка, и лишь после завершения 10 вызова функции начнутся выводиться логи аякс-ответов, которые кстати выполнятся также 10 раз)). Я конечно знал, что аякс выполняется асинхронно, но чтобы так!