Массив ttTimes
остается пустым, потому что вы никогда не ждете разрешения обещаний перед его проверкой. Вы можете использовать Promise.all
, чтобы дождаться их всех, прежде чем проверять массив результатов.
urls = ['www.a.com/dataa.json','www.b.com/datab.json']
// This function just returns a promise
function getData(url) {
return fetch(url)
.then(response=>{
return response.json()
})
.then(data =>{
const timeT = Math.round(data['routes'][0]['summary']['travelTimeInSeconds']/60);
return Promise.resolve(timeT);
})
}
Promise.all(
// use the urls to create an array of promises
urls.map(getData)
).then((ttTimes) => {
// When all the promises have been resolved, then this will be executed
//Here all the promises have been resolved, so you would have an array with the ttTimes
console.log(ttTimes);
})