这样做可以吗?
例如,我有我的退出服务
logout: function() {
var defer = $q.defer();
this.getCustomer().then(function(credentials) {
$http.post(CONSTANT_VARS.BACKEND_URL + '/auth/logout',
{username: credentials.username, customer: credentials.customer}
).success(function(data) {
if (data.error) {
defer.reject(data);
}
LocalForageFactory.remove(CONSTANT_VARS.LOCALFORAGE_CUSTOMER).then(function() {
/*Removing LocalForage Items*/
cleanLocalForage();
defer.resolve(data);
}, function(err) {
console.log(err);
defer.reject(data);
});
}).error(function(data) {
cleanLocalForage();
defer.reject(data);
});
}, function(err) {
defer.reject(err);
});
return defer.promise;
},
然后我在控制器中有一个函数,一旦会话到期就会返回错误。当会话到期时,我需要注销用户并将其重定向到登录路径。所以,这就是我到目前为止所做的:
$scope.removeSlip = function(slip) {
BetSlipFactory.removeSlip(slip).then(function() {
}, function(err) {
console.log(err);
AuthFactory.logout();
$location.path('/');
});
};
或者我应该通过退出承诺进入BetSlipFactory.removeSlip()
承诺吗?
$scope.removeSlip = function(slip) {
BetSlipFactory.removeSlip(slip).then(function() {
}, function(err) {
console.log(err);
AuthFactory.logout().then(function() {
$location.path('/');
})
});
};
有:这种情况下的正确方法是什么?