Javascript Angular JS函数在http.get完成之前返回

Javascript Angular JS函数在http.get完成之前返回,javascript,angularjs,http,Javascript,Angularjs,Http,这段代码在获得所需的所有信息之前返回 我有这个: function (){ .... var promise = $http.get(...) promise.then (...){ //get info needed to return promise } return promise } function getSmth(){ .... return $http.get(...) } 它在承诺完成之前返回。然后,我如何修复它?承诺就是这样工作的-您

这段代码在获得所需的所有信息之前返回 我有这个:

function (){
   ....
  var promise = $http.get(...)
  promise.then (...){
     //get info needed to return promise
  }
 return promise
}
function getSmth(){
   ....
  return $http.get(...)
}

它在承诺完成之前返回。然后,我如何修复它?

承诺就是这样工作的-您的函数会立即返回,您可以通过
将回调附加到它。然后

function someFunc() {
   return $http
     .get(...)
     .then(function() { 
        ... 
       return data; 
      });
}

someFunc()
   .then(function(data) { 
      /* to be executed after your promise.then() inside someFunc */ 
   });

当您返回承诺时,这意味着您的请求尚未完成。如果您想要获得数据,那么您应该在内部有一个返回,然后:

function (){
   ....
  var promise = $http.get(...)
  promise.then (...){
     //get info needed to return promise
     return data;
  }
}
或者你应该有这个:

function (){
   ....
  var promise = $http.get(...)
  promise.then (...){
     //get info needed to return promise
  }
 return promise
}
function getSmth(){
   ....
  return $http.get(...)
}
在页面中,您是否调用上述函数以使用承诺:

  getSmth().then (...){
     //this will be executed when the response is returned
  }
希望这有帮助