我已经设置了一个身份验证服务,我将其注入到我的登录控制器中,然后调用它进行登录......例如
$scope.login = 函数(){
var loginResult = authentication.login($scope.model.user, $scope.model.pass);
我需要知道登录成功与否的天气,因为我需要根据结果执行一些逻辑。我可以从身份验证服务上的登录返回一个布尔值,但问题是在我的登录内部它调用了一个有承诺的休息服务。像这样
return {
authenticate: function (username, password) {
var enc = base64.encode(username + ':' + password);
AuthRestangular.setDefaultHeaders({'Authorization': 'Basic ' + enc });
AuthRestangular.one('login').get().then(function (data) {
isLoggedIn = true;
return true;
}, function () {
return false;
});
因此,Rest 服务需要几秒钟的时间才能返回,它会返回一个承诺,即 then .... true 或 false。所以服务实际上在我得到承诺之前返回到登录控制器。
所以我很困惑我应该在这里做什么,我可以让我的服务也回报一个承诺吗?否则 loginResult 始终为 false,因为它不会及时返回,因此我的 bool 的默认值为 false。
有任何想法吗
谢谢