等待HTTP调用以从函数返回结果

时间:2016-05-01 12:28:49

标签: javascript angularjs

我想在工厂IsLoggedIn中调用一个函数,我想让它使用它的结果。

factory.IsLoggedIn = function () {
    var token = $cookies.get('token');
    LoginFactory.get({token: token },
    funtion(data){
          return true;
    },funtion(data){
          return false;
    }))
 }

在我的控制器中

if(factory.IsLoggedIn())
{
       //Do something
}

这显然不能作为factory.IsLoggedIn()在http返回promises之前返回一个值。有没有办法达到我想要的目的?

1 个答案:

答案 0 :(得分:2)

不确定

factory.IsLoggedIn = function () {
    var token = $cookies.get('token');
    return LoginFactory.get({token: token },
    funtion(data){
          return true;
    },funtion(data){
          return false;
    }))
 }

然后在工厂:

factory.IsLoggedIn().then(function(isLogged){
 if (isLogged) {
  // Do Something
 }
});

解释如下。您需要返回 承诺,以便您可以在控制器上或任何您想要的地方使用承诺。