Sobes.tech
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.