【发布时间】:2017-07-17 10:38:17
【问题描述】:
我有以下异步返回值的方法。 return inventoryData 似乎在填充其余值之前触发。这是日志:
我想等到所有值都被检索到,然后再触发return inventoryData。我该怎么做?
function checkInventoryUrl(url, size, code) {
var inventoryData = {};
return $http.get(url).then(function(response) {
var html = response.data;
// returns value instantly
inventoryData.url = url;
// parses html, takes a few seconds to return value
inventoryData.name = getProductName(html);
inventoryData.price = getPrice(html);
// returns promise
getProductQty(html, size).then(function(result) {
if(result) {
inventoryData.qtyAvailable = result;
console.log(inventoryData);
}
});
// returns promise
getProductMaxOrder(html, size).then(function(result) {
if(result) {
inventoryData.maxOrder = result;
console.log(inventoryData);
}
});
// returns promise
getProductSize(html, size).then(function(result) {
if(result) {
inventoryData.size = result;
console.log(inventoryData);
}
});
// fired straight away returns empty object
return inventoryData;
});
}
【问题讨论】:
标签: javascript angularjs