TypeError: Невозможно прочитать свойство 'elements' из undefined
В настоящее время я создаю приложение для совместного использования в iOS и столкнулся с некоторыми проблемами при использовании Google Distance Matrix в моем коде Node.js.
Ниже приведен код:
distance.matrix(leg3_origin, leg3_destination, function (err, distances) {
console.log('distance');
if (err) {
console.log(err);
return console.log(err);
}
else if(!distances) {
console.log('no distances..');
return console.log('no distances');
}
else{
console.log('if statement');
var origin = distances.origin_addresses[0];
var destination = distances.destination_addresses[0];
leg3Duration = distances.rows[0].elements[0].duration;
leg3Distance = distances.rows[0].elements[0].distance;
console.log(leg3Distance);
if (leg3Distance == null)
{
leg3Distance = 0;
}
console.log('entering 2nd leg');
getSecondLeg(driverArrivalTime2, leg3Duration, leg3Distance);
}
});
Линия leg3Duration = distances.rows[0].elements[0].duration;
вызывает ошибку при попытке вызвать.elements.
Я понимаю, что это ломается, потому что leg3Duration
не определено, но оно инициализируется в функции. Есть ли другой способ, которым я должен инициализировать это значение, чтобы избежать ошибки?
Заранее спасибо за помощь!
1 ответ
Вы должны console.log объект расстояния и подтвердить, что элементы не определены. У вас могут быть элементы с ошибками или, возможно, вам нужно использовать другое свойство?
Другие мысли:
Объект расстояния, возвращаемый в обратном вызове, может напоминать нечто совершенно отличное от документации в методе distance.matrix.
Может быть, проблема в том, что вы передали в метод distance.matrix?
Нам сложно определить, почему вы можете ожидать, что вы не указали в файле distance.rows[0] свойство elements. Вы копируете из официальной документации или вы вручную указали путь свойства к продолжительности вложенного свойства?