DEV Community

Cover image for Entendendo o uso de async/await com Promises no Javascript.
João Gabriel
João Gabriel

Posted on

Entendendo o uso de async/await com Promises no Javascript.

Entendendo Promises em JavaScript

As Promises são um recurso fundamental em JavaScript para lidar com operações assíncronas, elas representam um valor que pode estar futuramente ou nunca (caso a promise retorne um erro). No contexto de desenvolvimento web, são frequentemente utilizadas para lidar com solicitações de rede, acesso a bancos de dados e outras operações que levam tempo para serem concluídas.

O que são Promises?

Em termos simples, uma Promise é um objeto que representa o sucesso ou a falha de uma operação assíncrona. Ela possui três estados possíveis:

  1. Pendente: Estado inicial, quando a Promise está aguardando o resultado da operação.
  2. Resolvida (Fulfilled): Quando a operação é concluída com sucesso.
  3. Rejeitada (Rejected): Quando a operação falha.

Quando as Promises são utilizadas?

Promises são comumente utilizadas em situações em que uma operação assíncrona precisa ser realizada, como:

  • Requisições HTTP para recuperar dados de APIs.
  • Acesso a bancos de dados.
  • Leitura e escrita de arquivos.
  • Qualquer operação que envolva tempo de espera, como setTimeout.

Uso do async/await

O async/await é uma sintaxe introduzida no ECMAScript 2017 (também conhecido como ES8) para facilitar o trabalho com Promises. Ele permite escrever código assíncrono de forma mais síncrona, tornando-o mais legível e fácil de entender.

Antes do ES8 introduzir a sintaxe do async/await, as promises eram utilizadas através do método .then(), e os erros captados através do método .catch().

Exemplo de uso de uma Promise com async/await

// Função que retorna uma Promise que resolve após um certo tempo
function esperar(ms) {
  return new Promise(resolve => setTimeout(resolve, ms));
}

// Função assíncrona que utiliza o async/await
async function exemploAsyncAwait() {
  console.log('Iniciando operação assíncrona...');
  await esperar(2000); // Espera 2 segundos
  console.log('Operação assíncrona concluída!');
}

// Chamada da função assíncrona
exemploAsyncAwait();
Enter fullscreen mode Exit fullscreen mode

Neste exemplo, a função esperar retorna uma Promise que resolve após o número especificado de milissegundos. A função exemploAsyncAwait utiliza o await para aguardar a conclusão da Promise retornada por esperar.

Conclusão

As Promises e o async/await são recursos poderosos que tornam o código assíncrono em JavaScript mais fácil de escrever e entender. Elas são essenciais em todo o desenvolvimento que envolva o JavaScript como linguagem de programação, podendo ser utilizadas em qualquer tipo de chamada assíncrona.

Sentry blog image

How I fixed 20 seconds of lag for every user in just 20 minutes.

Our AI agent was running 10-20 seconds slower than it should, impacting both our own developers and our early adopters. See how I used Sentry Profiling to fix it in record time.

Read more

Top comments (0)

Eliminate Context Switching and Maximize Productivity

Pieces.app

Pieces Copilot is your personalized workflow assistant, working alongside your favorite apps. Ask questions about entire repositories, generate contextualized code, save and reuse useful snippets, and streamline your development process.

Learn more

👋 Kindness is contagious

Engage with a wealth of insights in this thoughtful article, valued within the supportive DEV Community. Coders of every background are welcome to join in and add to our collective wisdom.

A sincere "thank you" often brightens someone’s day. Share your gratitude in the comments below!

On DEV, the act of sharing knowledge eases our journey and fortifies our community ties. Found value in this? A quick thank you to the author can make a significant impact.

Okay