2
respostas

Dúvida sobre exemplo

const caminhos = [
 "./arquivos/texto-kanban.txt",
 "./arquivos/texto-web.txt",
 "./arquivos/texto-aprendizado.txt",
];

async function lerMultiplosArquivos(arrayDeCaminhos) {
 const arrayDePromessas = arrayDeCaminhos.map(
   async (caminho) => await fs.promises.readFile(caminho, "utf-8")
 );
 const conteudosDosArquivos = await Promise.all(arrayDePromessas);
 return conteudosDosArquivos;
}

lerMultiplosArquivos(caminhos);

Para que serve o "async/await" dentro do "map()", na função callback? E para que serve o "await" antes do "Promise.all(arrayDePromessas);"?

2 respostas

Oi Luidi,

Excelente pergunta! 👍

Vamos tentar esclarecer o uso do async/await no seu código. 😜

  1. async dentro do map(): Sem o async, o map retornaria um array de Promises pendentes, e não o resultado da leitura dos arquivos.

  2. await antes do Promise.all(): O await garante que você só prossiga com o código após ter todos os conteúdos dos arquivos.

Em resumo, o async no map cria Promises para cada leitura de arquivo, e o await no Promise.all espera que todas essas Promises sejam resolvidas antes de retornar os conteúdos. 💪

Para saber mais:

Continue explorando e aprofundando seus conhecimentos! 🤔

Não entendi para que serve o "async/await" dentro do "map()". Qual a diferença entre ter e não ter "async/await" dentro do "map()"?