在控制台中获取未定义的消息。我如何获得快速响应以及如何使用回调函数。
服务-----
.factory('getUserInfo', function ($http) {
return {
init: function () {
return $http.get(base_url + 'User/getUserInfo', {
}).then(function (response) {
return response.data.data;
});
},
};
});
财务主管-----
$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);
答案 0 :(得分:0)
您正在进行异步调用,因此需要将console.log
移至.then
函数中。其原因是console.log
是在$scope.getUserInfo();
之后执行的下一条语句。在从HTTP服务控制台获取响应之前,日志将被执行,并且您将获得undefined
作为输出。
直接从工厂服务返回承诺,并将服务调用后要执行的代码移至.then
方法中。
服务-----
.factory('getUserInfo', function ($http) {
return {
init: function () {
return $http.get(base_url + 'User/getUserInfo');
}
};
});
控制器-----
$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();