У меня есть список техников, которые мне нужны, чтобы получить индивидуальное время в пути между определенным местом. Я использовал скрипт для этого в Google Sheets
, но вместо этого я бы предпочел вычисления внутри моего веб-приложения. Здесь, конечно, есть несколько вопросов. Во-первых, я не могу просто сделать эти запросы в течение 1 oop без какой-либо задержки, иначе я получу ошибку over_query_limit
. Другая проблема заключается в том, что я хочу, чтобы пользователь знал, что все запросы выполнены, и на этом я застрял. В настоящее время я использую пакет google-maps-react
npm для выполнения sh этого.
Вот что у меня сейчас есть:
TechDriveTimeTest(techs, kioskInfo){
let result = []
techs.forEach(tech => {
if(tech.Address != "" && !tech.Notes.includes('Not')){
result.push(tech);
}
})
//console.log(result);
let directionsService = new google.maps.DirectionsService();
result.forEach((tech, index) => {
let techAddress = tech.Address + " " + tech.City + " " + tech.State + " " + tech.Zip
let req = {
origin: techAddress,
destination: 'some destination',
travelMode: 'DRIVING'
}
this.GetTime(index, req, directionsService);
})
}
GetTime(i, req, service){
setTimeout(function(){
service.route(req, function(res, status){
if(status == 'OK'){
let time = res.routes[0].legs[0].duration.text
console.log(time);
}
})
}, (i+1) * 1000)
}
Этот код отлично работает с задержкой запросов так что я больше не получаю сообщение об ошибке, но было бы неплохо знать, когда все запросы завершены, чтобы я мог уведомить пользователя. Спасибо!