Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida

Eu não entendi muito bem a explicação sobre o async/await. Alteramos a forma como o código espera algumas soluções eliminando o .then e substituindo pelo await, mas não entendi a lógica de fazer isso. O que é/significa uma Async function? Usamos em quais casos? O await deve sempre ser utilizado quando temos uma função assíncrona? Gostaria de saber mais sobre isso

1 resposta
solução!

Oi Bruno, tudo bem?

Uma função assíncrona, ou Async function, é uma função que tem a palavra-chave async antes de sua declaração. O papel dela é sempre retornar uma promessa. Se o código dentro da função assíncrona retorna um valor direto, o JavaScript automaticamente o envolve em uma promessa resolvida.

Agora, o await é utilizado apenas dentro de uma função assíncrona e faz o JavaScript "pausar" e esperar pela resolução ou rejeição da Promessa. Ele só pode ser usado dentro de uma função async. Ou seja, você não pode usar await no código global do seu script.

Vamos a um exemplo prático para esclarecer. Imagine que você tem uma função que busca dados de uma API:

async function buscarDados() {
    const resposta = await fetch('https://api.exemplo.com/dados');
    const dados = await resposta.json();
    return dados;
}

Nesse exemplo, fetch é uma função que retorna uma promessa. O await faz com que o JavaScript espere até que a promessa seja resolvida (ou rejeitada). Assim que a promessa do fetch for resolvida, o código continua a execução, atribuindo o resultado à variável resposta. O mesmo acontece com resposta.json(), que também retorna uma promessa.

Sobre quando usar, você vai querer usar async/await quando estiver lidando com operações assíncronas, como buscar dados de uma API, ler um arquivo do disco, etc. É uma maneira mais elegante e fácil de lidar com operações assíncronas, em comparação com callbacks e Promises.

Espero ter ajudado.

Um abraço e bons estudos.