Я выполняю обратное геокодирование набора координат с использованием цикла for и сохраняю результат каждой итерации в массиве на node.js.Однако, когда я отправляю массив в мой угловой интерфейс или регистрирую его в консоли, порядок городов рандомизируется.Я использую обертку @ google / maps для node.js.Вот мой код:
var gm = require('@google/maps').createClient({
key: '**********************************'
});
var x, z;
var places = [];
gm.directions({
origin: 'NYC',
destination: 'Washington DC',
}, function(err, response) {
if (!err) {
for(i=0; i<response.json.routes[0].legs[0].steps.length; i=i+3) {
x = response.json.routes[0].legs[0].steps[i].end_location; //getting the coordinates of the end location for each step
gm.reverseGeocode({latlng: [x.lat, x.lng],}, function(err, response){
if (!err) {
z = response.json.results[4].address_components[1].long_name + ', ' + response.json.results[4].address_components[2].short_name;
places.push(z);
}
});
}
}
});
setTimeout(() => {
console.log(places);
}, 5000)
Буду очень признателен, если вы скажете мне, что я делаю здесь неправильно.Спасибо.
ОБНОВЛЕНИЕ:
результат console.log (response.json.results [4]) результат console.log (g)