AngularJS вызов функции из службы возвращает undefined - PullRequest
0 голосов
/ 04 августа 2020

Услуга содержит функцию входа в систему. Эта функция возвращает 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;
       }
    );
  };
}
...