[英]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.