Показать сообщение отдельно
  #1 (permalink)  
Старый 21.12.2014, 16:07
Интересующийся
Отправить личное сообщение для Tsamsiyu Посмотреть профиль Найти все сообщения от Tsamsiyu
 
Регистрация: 26.09.2014
Сообщений: 19

Ajax, что ты делаешь?
Есть вот такой простой код:
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 раз)). Я конечно знал, что аякс выполняется асинхронно, но чтобы так!
Ответить с цитированием