【发布时间】:2016-11-26 04:48:41
【问题描述】:
我被困在为什么我的承诺不起作用。从我看过的其他文章来看,我认为我做得对。这是我目前的代码:
工厂代码
factory.isLoggedIn = function() {
$http.get('/api/v1/fitbit/auth')
.success((data) => {
return data.status;
})
.error((error) => {
console.log('Error: ' + error);
});
}
控制器代码
$scope.fitbitAuth = function() {
FitbitFactory.isLoggedIn()
.then(
function(data) {
$scope.fitbitStatus = data;
},
function(errorData) {
console.log(errorData);
});
return $scope.fitbitStatus;
};
根据我对承诺的理解,return $scope.fitbitStatus 应该填充$scope.fitbitAuth,但事实并非如此。我还在工厂中返回了一个布尔值,它应该填充 $scope.fitbitStatus。
【问题讨论】:
-
在 factory.isLoggedIn 的 $http 前添加 return 语句
-
并摆脱工厂中的成功和错误。
标签: javascript angularjs promise es6-promise