【发布时间】:2017-10-23 15:51:39
【问题描述】:
我试图在返回之前解决 $http 获取请求,但我似乎总是得到未定义的结果。 我花了很多时间研究和尝试不同的方法,但似乎仍然无法解决它,你们有没有人知道我哪里出错了?
这是 services.js 文件
(function() {
angular.module('Home')
.factory('HomeService', HomeService);
function HomeService($http) {
return {
getStatus: getStatus()
};
function getStatus($scope) {
$http({
method: 'GET',
url: 'http://rubynode-iot.chimera.projects.local/sparkDrivers'
}).then(function successCallback(response) {
}, function errorCallback(response) {
});
}
}
}());
这是我希望发送解析结果的控制器。
function HomeController(HomeService) {
HomeService.getStatus;
console.log(HomeService.getStatus)
};
【问题讨论】:
-
getStatus()什么也不返回。除了undefined,您如何期望它返回任何内容? -
您能说明一下您是如何尝试使用它的吗?您可能需要从 getStatus 或使用 $q 以及您试图获得返回实现的地方返回承诺 .then()
-
@BenBeck 好吧,我不能把响应放在那里,因为它在函数之外,我不能使用返回,因为它返回的是承诺而不是结果。这就是我卡住的地方。
-
@Jayyf9,返回承诺然后在你的控制器中执行承诺。
-
嗨@DougEFresh 我试图为这个问题添加更多上下文。