Sobes.tech
Junior

Fale sobre a construção async/await em JavaScript.

sobes.tech IA

Resposta da IA

async/await — açúcar sintático sobre promessas, concebido para escrever código assíncrono de forma mais simples que parece síncrono.

Uma função marcada com a palavra async devolve sempre uma promessa. Dentro de uma função async, pode usar a palavra-chave await.

O operador await é usado antes da chamada de uma promessa. Ele suspende a execução da função async até que a promessa seja resolvida ou rejeitada. O resultado da promessa (sucesso ou erro) é devolvido por await.

Se a promessa à qual await é aplicado for rejeitada, isso gera uma exceção que pode ser capturada com um bloco try...catch.

// Exemplo de uso de async/await
async function fetchData() {
  try {
    // Espera pela conclusão de uma operação assíncrona (por exemplo, uma requisição à API)
    const response = await fetch('https://api.example.com/data');
    // Analisar a resposta em JSON
    const data = await response.json();
    // Mostrar os dados recebidos
    console.log(data);
  } catch (error) {
    // Capturar qualquer erro
    console.error('Erro ao obter dados:', error);
  }
}

// Chamar a função async
fetchData();

// Função async que devolve uma promessa
async function getValue() {
  return 10; // Isto é automaticamente envolvido em Promise.resolve(10)
}

getValue().then(value => console.log(value)); // Vai mostrar 10

Vantagens do async/await:

  • Legibilidade do código: O código assíncrono fica mais parecido com o síncrono
  • Tratamento de erros: Mais fácil de usar com blocos try...catch padrão.
  • Menos aninhamento: Evita "callback hell" ou cadeias longas de .then().

É importante lembrar que await só pode ser usado dentro de funções async.