在函数中返回$ http的$ response值?

时间:2016-11-12 15:37:55

标签: javascript angularjs

我尝试在函数内调用$ http服务,所以我没有得到嵌套的回调。没有功能范围,它看起来像这样:

      $http.post('/verify_stripe_token', {email:$routeParams.email,token:$routeParams.t})
      .then(function(response) {
        console.log(response.data) // return 1
      });

我想使用if(valid_token()== 1){}所以我试过

function valid_token(){
      $http.post('/verify_stripe_token', {email:$routeParams.email,token:$routeParams.t})
      .then(function(response) {
        return response.data;
      });
    }

什么都没有用?我做了console.log(valid_token())我得到了未定义。

2 个答案:

答案 0 :(得分:2)

首先,您的valid_token()函数不会返回任何内容。

接下来,由于if(valid_token() == 1)请求是异步的,因此您无法$http

您需要执行以下操作:

function valid_token(){
  // return the promise
  return $http.post('/verify_stripe_token', {email:$routeParams.email,token:$routeParams.t})
  .then(function(response) {
    return response.data;
  });
}

valid_token().then(function(data){
  if(data == 1){
     // do what you need here
  }
})

答案 1 :(得分:0)

响应实际上是一个JSON.Print response.data来确认它并以JSON方式处理它