Junior — Middle
Qual é a diferença entre as construções async/await e Promise ao trabalhar com código assíncrono em JavaScript?
sobes.tech IA
Resposta da IA
Promise é um objeto que representa o resultado de uma operação assíncrona, que pode ser cumprido ou rejeitado no futuro. Permite registar manipuladores através dos métodos then() e catch().
async/await é um açúcar sintático sobre Promise, que permite escrever código assíncrono ao estilo síncrono, tornando-o mais legível e fácil de depurar.
Principais diferenças:
- Promise requer cadeias de then/catch para lidar com resultados e erros.
- async/await permite usar as palavras-chave await para esperar o resultado de Promise dentro de uma função assíncrona.
Exemplo:
// Promise
fetch(url)
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error));
// async/await
async function fetchData() {
try {
const response = await fetch(url);
const data = await response.json();
console.log(data);
} catch (error) {
console.error(error);
}
}
fetchData();
Assim, async/await simplifica o trabalho com Promise, tornando o código mais linear e compreensível.