因爲我是AngularJS的新手,請原諒。
我有以下嵌套$ HTTP調用,
$http({
method: 'GET',
url: host1,
params: {
'format': 'json',
}
}).then(function successCallback(response) {
for (var i = 0; i < response.data.length; i++) {
$http({
method: 'GET',
url: response.data[i]['url'] + "packet-trace/base",
params: {
'format': 'json',
}
}).then(function successCallback(response2) {
//Retrieve some information from first $http call
var doSomething = response.data[i]['information'];
var doSomething2 = doSomething + response2.data['information'];
}, function errorCallback(response2) {
//Error
});
}
}, function errorCallback(response) {
//Error
});
我需要從最初的$ HTTP調用檢索數據,然後從$ HTTP檢索數據,並使用這兩個數據作爲的一部分我的邏輯。但是,我無法從第一個$ http調用訪問數據。循環計數器'i'始終等於response.data的長度。
如何訪問第一個$ http調用的數據?
此外,是否有任何特定的編碼約定或特定的API我可以用來順序調用$ http?嵌套$ http調用會變得雜亂而難以維護。
謝謝。
我也試過這樣做。然而,同樣的事情發生了,它只能夠檢索最後一個值。 – Ezra
如果您在捕獲值之後並在循環中發送AJAX請求之前放置了'console.log(someValue);',您是否會在每次迭代中看到正確的值? –
是的,我可以看到各個值,但是一旦它在第二個AJAX調用中,就會消失,指向最後一個值。 – Ezra