【发布时间】:2014-11-03 16:45:36
【问题描述】:
我对 http 请求有疑问。 这是我的旧帖子。
How to get the multiple http request results in my example?
我稍微修改了我的代码。基本上我需要发出多个http请求并将它们存储到productGroup数组中。但是,我收到 undefined 的返回结果。
var buildProduct = function(product) {
var productGroup = [];
for(var i = 0; i < product.length; i++) {
var t = buildProductDetail(product, i)
productGroup.push(t);
}
console.log(productGroup) // I am getting undefined here.
return productGroup;
}
var buildProductDetail = function(product, i) {
var plan = {}
getProductDetail(product[i].id)
.then(function(data){
plan = {detail: data.detail, name:product[i].name}
console.log(plan) //has data
return plan;
})
}
var getProductDetail = function(id) {
return $http.get('/api/project/getProduct' + id);
}
【问题讨论】:
-
buildProductDetail不返回任何内容,因此undefined。 -
我想到了退货计划;将返回对象
-
From the docs,
.then添加在 Deferred 对象被解析、拒绝或仍在进行中时调用的处理程序。因此,您需要检查延迟对象是否已解决。因此,您应该在ajax请求的.success回调或延迟对象的.done过滤器中推送元素。
标签: javascript angularjs xmlhttprequest