小编use*_*820的帖子

如何使用$ q从AngularJS服务返回已解决的承诺?

我的服务是:

myApp.service('userService', [
  '$http', '$q', '$rootScope', '$location', function($http, $q, $rootScope, $location) {
    var deferred;
    deferred = $q.defer();
    this.initialized = deferred.promise;
    this.user = {
      access: false
    };
    this.isAuthenticated = function() {
      this.user = {
        first_name: 'First',
        last_name: 'Last',
        email: 'email@address.com',
        access: 'institution'
      };
      return deferred.resolve();
    };
  }
]);
Run Code Online (Sandbox Code Playgroud)

config通过以下方式在我的文件中调用它:

myApp.run([
  '$rootScope', 'userService', function($rootScope, userService) {
    return userService.isAuthenticated().then(function(response) {
      if (response.data.user) {
        return $rootScope.$broadcast('login', response.data);
      } else {
        return userService.logout();
      }
    });
  }
]);
Run Code Online (Sandbox Code Playgroud)

但是,它抱怨说这then不是一个功能.我不回复已解决的承诺吗?

javascript promise angularjs angular-promise

45
推荐指数
3
解决办法
11万
查看次数

标签 统计

angular-promise ×1

angularjs ×1

javascript ×1

promise ×1