Angularjs Angular ui router,在其中一个触发错误-拒绝后,如何取消以下解析?

Angularjs Angular ui router,在其中一个触发错误-拒绝后,如何取消以下解析?,angularjs,Angularjs,我在下面的代码中使用ui路由器,我有两个解决方案 我检查是否有身份验证令牌 我从服务器上得到一些数据 如果没有令牌,我将拒绝解析并重定向到用户登录页面 问题是,“电影人”的解析仍在进行中-如何取消解析? 有什么想法吗 angular.module('app.code').config(['$stateProvider', function($stateProvider) { $stateProvider.state('code', { url: '/cod

我在下面的代码中使用ui路由器,我有两个解决方案

  • 我检查是否有身份验证令牌
  • 我从服务器上得到一些数据
  • 如果没有令牌,我将拒绝解析并重定向到用户登录页面

    问题是,“电影人”的解析仍在进行中-如何取消解析?

    有什么想法吗

    angular.module('app.code').config(['$stateProvider', function($stateProvider) {
            $stateProvider.state('code', {
                url: '/code',
                templateUrl: 'app/sections/code/code.tpl.html',
                controller: 'CodeCtrl',
                resolve: {
    
                    /**
                     *  Auth middleware.
                     */
                    UserData: ['$q', 'Session', function ($q, Session) {
                        var userData = Session.getUserData();
                        if (userData.token) {
                            return userData;
                        }
                        return $q.reject('login');
                    }],
    
                    // IF I TRIGGER THE REJECT ABOVE, HOW DO I CANCEL THIS FOLLOWING RESOLVE?
    
                    movieList: ['$q', 'MoviesService', function ($q, MoviesService) {
    
                        var deferred =  $q.defer();
    
                        MoviesService.query().then(
                            function (success) {
                                deferred.resolve(success.data);
                            },
                            function (error) {
                                $q.reject('home');
                            }
                        );
    
                        return deferred.promise;
                    }]
                }
            });
        }]);
    

    将UserData作为依赖项添加到movieList resolve函数。现在,只有在解析UserData时才会调用movieList

     movieList: ['$q', 'MoviesService', 'UserData', function ($q, MoviesService, UserData) {
    
                    var deferred =  $q.defer();
    
                    MoviesService.query().then(
                        function (success) {
                            deferred.resolve(success.data);
                        },
                        function (error) {
                            $q.reject('home');
                        }
                    );
    
                    return deferred.promise;
                }