Para executar uma função assíncrona dentro de um map() para  realizar uma operação em cada  Elemento do array e obter os resultados de volta:

        

const lista = [1, 2, 3, 4, 5] //...um array com os valores

const functionWithPromise = item => { //uma função qualquer que retorna uma promessa
  return Promise.resolve(item + 'ok')
}

const anAsyncFunction = async item => {
  return functionWithPromise(item)
}
///// Seu código de interesse é o seguinte:
const getData = async () => {
  return Promise.all(lista.map(item => anAsyncFunction(item)))
}

getData().then(data => {
  console.log(data)
})


A principal coisa a notar é o uso de Promise.all (), que resolve quando todas as suas promessas são cumpridas.

lista.map () retorna uma lista de promessas, então, como resultado, obteremos o valor quando tudo o que executamos for resolvido

getData().then irá executar quando todas as promessas forem resolvidas. Ideal para realizar a operação somente quando o lista.map() concluir.


Lembre-se de que devemos agrupar qualquer código que as chamadas aguardam em uma função assíncrona.