I thought for loops were blocking in Javascript, but this function is returning an empty array before the for loop finishes. Is the answer to this to setup a new function with just the for loop as a promise? If so what does that look like, the syntax for a promise is really confusing to me.
async function retrieve_s3_file(to_do_list, guid){
var data_list = [];
for (let i = 0; i < to_do_list.length; i++)
{
element = to_do_list[i];
console.log("\n\nOutgoing request /jobs/list?guid=" + guid + "&file=" + element);
axios.get(job_queue_url + "?guid=" + guid + "&file=" + element)
.then(function (res){
data_list.push(res.data);
console.log("Inside Loop: " + JSON.stringify(data_list));
})
.catch(function (error){
console.log(error);
});
}
console.log("Data List: " + JSON.stringify(data_list));
return JSON.stringify(data_list);
}