I asked a question that was closed due to similar questions but even after reading those and seeing that map is not Promise aware, I have tried to use await Promise.all() around my mapping.
let foo = [1,2,3];
(async() => { 
   await Promise.all(foo.map(x => {
      return new Promise(async function(resolve) {
         await setTimeout(() => {
            console.log("X")
            resolve()
         }, 3000)
      });
   }))
})()
instead of sequentially getting a "X" log every 3 seconds, it's just waiting 3 seconds and then logging them all. I am not sure what I am doing wrong at this point.
 
    