如果statement为true,则实现angular promise,如果不提供默认值

时间:2015-10-15 11:25:41

标签: angularjs angular-promise

如果用户已登录,我希望实现Angular承诺,但如果不是,我希望为后端提供默认值。这目前有效,但显然它是非常重复的。任何人都可以提供任何指导吗?

到目前为止,这是我的代码:

this.getUserDetails = TestService.get({ id: signedIn.id });

this.getUserDetails返回一个JSON对象,然后我需要使用它来发出后续的GET请求,但前提是用户已登录。

 // this is executed if user not signed in
if(!signedIn.Id){
 controller.test_type = "Whatever"

   TestService.query({test_type: controller.test_type}, function (prices) {
       this.test = prices.prices;
    }).$promise; 
}

//executed if user is signed in, but must wait for backend to return data first

else{
    this.getUserDetails.$promise.then(function(data){ 
    TestService.query({test_type: data.test_type}, function (prices) {
        this.test = prices.prices;
    }).$promise; 
}

如果需要进一步的详细信息,请与我们联系。

由于

1 个答案:

答案 0 :(得分:1)

如何链接和嵌套这样的调用:

function check(){
  if(signedIn){
    return this.getUserDetails.$promise
  }else{
    return $q.when(controller)  
  }
};

check().then(function(data){
    TestService.query({test_type: data.test_type}, function (prices) {
        this.test = prices.prices;
    });
});