Услуга содержит функцию входа в систему. Эта функция возвращает deferred.promise. В контроллере я вызываю эту функцию и пытаюсь обработать результат, но в обоих случаях результат не определен. Как получить непустой результат?
пользователь. js
module.exports = function ($rootScope, $http, $q, apiUrl, $httpParamSerializer, api, $state) {
this.login = (data) => {
const deferred = $q.defer();
const r = $http.post(`${apiUrl}/login`, $httpParamSerializer(data), {
withCredentials: true,
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
})
r.then(() => {
api.init().then(() => {
deferred.resolve();
});
}, () => {
deferred.reject();
});
return deferred.promise;
};
}
контроллер. js
module.exports = function ($state, $scope, user, $rootScope) {
$scope.loginSubmit = () => {
user.login($scope.loginData).then(
(result) => {
console.log(result); // undefined
user.isLogin = true;
$scope.closeThisDialog();
},
(result) => {
console.log(result); // undefined
$scope.errors = result.data.errors;
}
);
};
}