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...catchpadrão. - Menos aninhamento: Evita "callback hell" ou cadeias longas de
.then().
É importante lembrar que await só pode ser usado dentro de funções async.