Задать вопрос
@beduin01

Как извлечь JSON из Promise?

В переменную мне нужно получить JSON. Однако из-за ассинхронности JS я получаю туда Promise.
$scope.stat_fromdb = $http.get('http://127.0.0.1:8080/stat').success(function(response) {
         // $scope.stat_fromdb = response.data;
         return response.data;
         console.log($scope.stat_fromdb);
    	
    	});
    	 console.log($scope.stat_fromdb);


Вопрос, как JSON оттуда вытащить?
  • Вопрос задан
  • 4980 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
dmitry_pavlov
@dmitry_pavlov
World-class .NET freelance contractor (remotely)
Либо берите данные из response внутри callback-а
$http.get('http://127.0.0.1:8080/stat').success(function(response) {
         // используйте свои данные прямо тут 
         var data = response.data;
         console.log(data);
});


Либо (если результат нужен какому-то внешнему коду) передайте снаружи callback - функцию которую нужно вызвать, когд данные будут готовы.
var getData = function (callMeWhenDataReady) {
$http.get('http://127.0.0.1:8080/stat').success(function(response) {
         var data = response.data;
         console.log(data);
         // передайте данные во внешний callback
         callMeWhenDataReady(data);
});
};

...
getData(function(data) { 
        console.log(data);
} )
...


JS асинхронный - надо помнить об этом и организовывать код правильно. Если нужно дожидаться нескольких AJAX запросов, чтобы продолжить что-то делать - можно также использовать jQuery.when().
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@moondogy
$http.get('http://127.0.0.1:8080/stat').success(function(response) {
         $scope.stat_fromdb = response.data;
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы