繁体   English   中英

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

[英]Angular JS function returning before http.get finishes

在获得所需的所有信息之前,此代码块将返回:

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

它在承诺之前返回。然后完成,我该如何解决?

这就是保证工作的方式-您的函数会立即返回,然后通过.then将回调附加到该函数

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 getSmth(){
   ....
  return $http.get(...)
}

并在页面中调用了上述函数以使用promise:

  getSmth().then (...){
     //this will be executed when the response is returned
  }

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM