Why second console.log gives me undefined when first one prints actual data? How to assign data received in promise to any variable to be able to use it without promise?
angular.module('dopasujApp')
.controller('productLoader', [ '$scope','getProducts',
function ($scope,getProducts) {
$scope.recived = {};
console.log($scope.list);
function getter() {
return getProducts(1, 150, 20, 'ASC', 'PRODUCT_ID', 'a').then(function (recived) {
$scope.recived = recived;
console.log($scope.recived);
}
);
}
getter();
console.log($scope.recived);
}
]);
Here is my factory code:
angular.module('dopasujApp').factory('getProducts', ['$http', function ($http) {
return function(fit = 1, limit = 150, vendor = 20, sort = 'ASC', orderBy = 'PRODUCT_ID', search='a', size=[], filters={}, attribs=[]) {
var getProduct = {}, recived = {}, APIurl;
getProduct.data={};
getProduct.data.sort=sort;
getProduct.data.orderBy=orderBy;
getProduct.data.search=search;
getProduct.data.filters=filters;
getProduct.data.filters.ATTRIBS=attribs;
getProduct.data.filters.SIZE=size;
recived.list= [];
recived.count = 0;
recived.filters = {};
APIurl = "*******?action=getListing&fit="+fit+"&limit="+limit+"&vendor="+vendor;
var request = $http({
method: "POST",
url: APIurl,
headers: {
'Content-Type': 'application/json'
},
data: {
data: getProduct.data
}
});
var values = request.then(function (response){
return {
list: response.data.QUERY,
count: response.data.COUNT,
filters: response.data.FILTERS
};
});
return values;
}
}]);