Я потерялся в обещанной земле и действительно мог бы воспользоваться некоторыми советами. Я исчерпал себя поиском множества SO-вопросов (2-3 часа чтения решений + документация), связанных с этой, казалось бы, общей проблемой, и чувствую, что просто не понимаю ее.
Обзор
Ниже приведен код который принимает тип объекта (resources
), берет несколько значений из этого объекта, а затем вычисляет расстояние и продолжительность из матрицы расстояний GoogleMaps. Результатом функции googleRequest()
является обещание, содержащее два значения (расстояние и продолжительность).
Я хотел бы вернуть эти два значения обратно в for l oop, выполнить pushToRows()
, а затем вернуть массив с именем final_rows
.
Проблема
final_rows
показывает НЕОПРЕДЕЛЕННО для ключей продолжительности и расстояния в каждой строке. Я предполагаю, что это происходит потому, что я пытаюсь получить доступ к значениям в dist_dur
ненадлежащим образом. Буду признателен за любую помощь в решении этой проблемы. Спасибо.
Код
final_rows = []
function getDistTime(resources){
for (var i = 0; i < resources.data.length; i++) {
var origin1 = $("#citystate").val();
var destinationA = resources.data[i]['DEMOBILIZATION CITY'] + ',' + resources.data[i]['DEMOBILIZATION STATE'];
var dist_time_data = googleRequest(origin1, destinationA).then((values) => {
return values
})
pushToRows(resources.data[i], dist_time_data)
}
// console.log(final_rows)
}
function pushToRows(resources, dist_dur){
resources["DISTANCE_MI"] = dist_dur[0];
resources["ACTUAL_DUR_HR"] = dist_dur[1];
resources["FINANCE_DUR_HR"] = (dist_dur[0] / 45.0).toFixed(2)
final_rows.push(resources)
}