如何返回一个空的承诺?

时间:2017-12-28 17:23:24

标签: javascript

我有这段代码:

  var updateLogin = function updateLogin() {
     var parameters = $location.search();
     if(parameters.votoken) {
         // return a promise
         return authenticationService.updateCurrentToken(parameters);
     }

    //just logout and redirect to match another route
    authenticationService.logout()['finally'](function logoutComplete() {
        $location.url('/unauthorized');
    });
  }

    var redirectToHome = function redirectToHome() {

    $injector.invoke(updateLogin).then(() => {
           //some action here
    });
  }  


  redirectToHome();

如你所见, 如果updateLogin方法匹配一个条件它将返回一个promise并且它工作正常,但如果没有,该方法不会返回一个promise并将用户重定向到一个新位置,然后我在控制台{{1}上收到此错误它显而易见的原因。我想知道避免这种情况的最佳方法是什么。如果我返回Cannot read property 'then' of undefined承诺,我怎么知道我是否需要在authenticationService.logout()代码段上执行此方法$location.url('/unauthorized');

1 个答案:

答案 0 :(得分:2)

可以在else中返回$q.reject()。还记得注入$q

相关问题