当我用console.log()我的代码时,我可以查看我的数据,但是当我尝试访问它时,该数据是未定义的并且数组长度为0。我进行了测试,我知道将正确的信息推送到了数组上每次迭代。
$(document).ready(async function() {
var formattedAddress = [];
var lat1 = [];
var lng1 = [];
var Formatted = [];
//Get Json Data
function start() {
const request = new XMLHttpRequest();
request.open('get', 'Addresses.json');
request.send();
request.onload = () => {
try {
const json = JSON.parse(request.responseText);
for (var k = 0; k < json.Addresses.length; k++) {
axios.get('https://maps.googleapis.com/maps/api/geocode/json', {
params: {
address: json.Addresses[k].content,
key: 'AIzaSyCEnAi46n51grggeqrwew33f28'
}
})
.then(function(response) {
// Formatted Address
formattedAddress.push(response.data.results[0].formatted_address);
lat1.push(response.data.results[0].geometry.location.lat);
lng1.push(response.data.results[0].geometry.location.lng);
}).then(function(response) {
return response;
})
}
} catch (e) {
console.log("Could not Load Data!!");
}
};
}
await start();
console.log(formattedAddress);
console.log(formattedAddress.length);
console.log(formattedAddress[0]);
});
实际结果:
[]
0: "Edina, MN, USA"
1: "Stillwater, MN 55082, USA"
2: "Roseville, MN 55113, USA"
3: "St Paul, MN, USA"
4: "4855 Bloom Ave, White Bear Lake, MN 55110, USA"
5: "Maple Grove, MN, USA"
length: 6
__proto__: Array(0)
0
Undefined
预期结果:
[]
0: "Edina, MN, USA"
1: "Stillwater, MN 55082, USA"
2: "Roseville, MN 55113, USA"
3: "St Paul, MN, USA"
4: "4855 Bloom Ave, White Bear Lake, MN 55110, USA"
5: "Maple Grove, MN, USA"
length: 6
__proto__: Array(0)
6
"Edina, MN, USA"