我有一個關於http請求的問題。 這是我的舊帖子。如何解決我的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'。 – elclanrs 2014-11-03 08:38:38
我以爲回報計劃;將返回對象 – BonJon 2014-11-03 08:45:20
[來自文檔](http://api.jquery.com/deferred.then/),'.then'在Deferred對象被解析,拒絕或仍在進行時添加要處理的處理程序。所以你需要檢查延遲對象是否已經解決。因此,您應該將推送對象的'ajax'請求或'.done'過濾器的'.success'回調中的元素推送出去。 – 2014-11-03 08:53:23