0

In console undefined message getting. How i can get fast response and how i will use callback function.

service -----

.factory('getUserInfo', function ($http) {
    return {
        init: function () {
            return $http.get(base_url + 'User/getUserInfo', {
            }).then(function (response) {
                return response.data.data;
            });

        },
    };
});

coltrollers -----

$scope.getUserInfo = function () {
            getUserInfo.init().then(function (response) {
                $scope.USER_UAD_response = response;
                $scope.USER_UAD_SYS_ID = response.USER_UAD_SYS_ID;
                //$scope.getPrice();
            });
        };
        $scope.getUserInfo();
    console.log($scope.USER_UAD_response);

1 Answers1

0

You are making an asynchronous call, so need to move your console.log into .then function. The reason behind this is console.log is the next statement which will execute after $scope.getUserInfo();. Before getting the response from HTTP service console.log will get executed and you are getting undefined as output.

Directly return promise from factory service and move the code that you want to execute after service call into .then method.

service -----

.factory('getUserInfo', function ($http) {
    return {
        init: function () {
            return $http.get(base_url + 'User/getUserInfo');    
        }
    };
});

controller -----

$scope.getUserInfo = function () {
            getUserInfo.init().then(function (response) {
                $scope.USER_UAD_response = response;
                $scope.USER_UAD_SYS_ID = response.USER_UAD_SYS_ID;
                //$scope.getPrice();
                console.log($scope.USER_UAD_response);

            });
        };
        $scope.getUserInfo();
Kaustubh Khare
  • 3,280
  • 2
  • 32
  • 48