Lädt...

🔧 Qual a diferença de Encadeamento de Promises e Aync/await


Nachrichtenbereich: 🔧 Programmierung
🔗 Quelle: dev.to

Hoje me deparei com a minha própria ignorância sobre a diferença entre essas duas formas de lidar com operações assíncronas, então decidi ler e pesquisar para escrever esse post — como um lembrete para mim e, quem sabe, ajudar outros desenvolvedores a entender melhor essa diferença.

Na época, eu sabia mais ou menos explicar que ambas fazem a mesma coisa, com o then() trazendo os dados resolvidos, enquanto resolve e reject eram usados para finalizar com sucesso ou erro. Já o async/await tinha o await para esperar o resultado antes de seguir para o próximo passo. Não estava completamente errado, mas dava para explicar de uma forma bem melhor.

Promise

A Promise, como o nome sugere, é uma "promessa" de retorno de dados que passa por três estados principais:

  1. Pending: Estado inicial, quando a promessa ainda não foi resolvida ou rejeitada.
  2. Fulfilled: A operação foi concluída com sucesso.
  3. Rejected: A operação falhou e o erro foi capturado.
const minhaPromise = new Promise((resolve, reject) => {
  let sucesso = true; // Apenas um exemplo condicional

  if (sucesso) {
    resolve("Operação concluída com sucesso!");
  } else {
    reject("Ocorreu um erro na operação.");
  }
});

Encadeamento de Promises

Essa era a forma mais comum de lidar com Promises antes do async/await. Usamos os métodos then(), catch() e finally().

  • then(): Usado para receber e manipular o dado resolvido com sucesso.
  • catch(): Usado para lidar com o erro quando a promessa é rejeitada.
  • finally(): Usado para executar um código independente do resultado.
minhaPromise
  .then((mensagem) => {
    console.log(mensagem); // "Operação concluída com sucesso!"
  })
  .catch((erro) => {
    console.error(erro); // Se der erro, isso será executado.
  })
  .finally(() => {
    console.log("Finalizando a execução da Promise"); // Sempre será executado.
  });

Async/Await

Uma função marcada como async retorna automaticamente uma Promise, e o await é usado para "pausar" a execução até que a Promise seja resolvida.

async function buscarDados() {
  try {
    const response = await fetch("https://jsonplaceholder.typicode.com/todos/1");
    const data = await response.json();
    console.log("Dados recebidos:", data);
  } catch (error) {
    console.error("Erro ao buscar dados:", error);
  }
}

buscarDados();

A Diferença

O encadeamento de Promises pode fazer com que o código fique muito aninhado, especialmente quando usamos vários then() seguidos, tornando a leitura mais difícil.

Já o async/await permite escrever código assíncrono de uma maneira mais parecida com o código síncrono, facilitando a leitura e a compreensão da lógica. O código fica mais limpo, especialmente quando precisamos lidar com várias operações assíncronas.

Além disso, a forma de tratar erros usando try/catch com async/await é mais intuitiva do que usar apenas o catch nas Promises.

...

🔧 Qual a diferença de Encadeamento de Promises e Aync/await


📈 151 Punkte
🔧 Programmierung

🔧 Threads vs. Corrotinas: Qual é a Diferença e Por Que Isso Importa?


📈 43.84 Punkte
🔧 Programmierung

🔧 HTTP x HTTPS - Qual a Diferença?


📈 43.84 Punkte
🔧 Programmierung

🔧 Kubernetes vs Docker Swarm: Qual a diferença na prática?


📈 43.84 Punkte
🔧 Programmierung

🔧 Is async/await a good idea? 🤔 async/await vs promises


📈 43.53 Punkte
🔧 Programmierung

📰 Im Schlaraffenland der Spiele: Von der Qual der Wahl zur Wahl der Qual


📈 38.45 Punkte
📰 IT Nachrichten

🔧 Learn Async Programming in TypeScript: Promises, Async/Await, and Callbacks


📈 27.68 Punkte
🔧 Programmierung

🔧 Mastering Asynchronous JavaScript: A Guide to async/await and Promises ⌛️


📈 27.68 Punkte
🔧 Programmierung

🔧 Promises vs. Async/Await: What's the Difference?🤔


📈 27.68 Punkte
🔧 Programmierung

📰 (g+) Programmiersprachen: Asynchronität, Promises und "await" in Javascript


📈 27.68 Punkte
📰 IT Nachrichten

🔧 Understanding closures, promises, and async/await


📈 27.68 Punkte
🔧 Programmierung

🔧 Mastering Asynchronous JavaScript: How to Effectively Use Promises, Async/Await, and Error Handling


📈 27.68 Punkte
🔧 Programmierung

🔧 Understanding JavaScript Asynchronous Programming: Callbacks, Promises, and Async/Await


📈 27.68 Punkte
🔧 Programmierung

🔧 Asynchronous JavaScript: Callbacks, Promises, and Async/Await


📈 27.68 Punkte
🔧 Programmierung

🔧 Asynchronous Programming in JavaScript - Callbacks | Promises | Async/Await


📈 27.68 Punkte
🔧 Programmierung

🔧 ⭐️🌐 🎀 JavaScript Visualized: Promises & Async/Await


📈 27.68 Punkte
🔧 Programmierung

🔧 Callbacks vs Promises vs Async/Await Concept in JavaScript


📈 27.68 Punkte
🔧 Programmierung

🔧 🌀 Understanding Asynchronous JavaScript: Callbacks, Promises, and Async/Await


📈 27.68 Punkte
🔧 Programmierung

🔧 ⭐️🌐 🎀 JavaScript Visualized: Promises & Async/Await


📈 27.68 Punkte
🔧 Programmierung

🔧 Exploring Asynchronous JavaScript: Callbacks, Promises, and Async/Await


📈 27.68 Punkte
🔧 Programmierung

🔧 Asynchronous programming Callbacks, Promises & Async Await


📈 27.68 Punkte
🔧 Programmierung

🔧 Async/Await and Promises in JavaScript


📈 27.68 Punkte
🔧 Programmierung

🔧 A comprehensive guide to Promises, Async, and Await in JavaScript


📈 27.68 Punkte
🔧 Programmierung

🔧 Asynchronous JavaScript: Promises vs. Async/Await in Details


📈 27.68 Punkte
🔧 Programmierung

🔧 Mastering Asynchronous JavaScript: Callbacks, Promises, and Async/Await


📈 27.68 Punkte
🔧 Programmierung

🔧 Asynchronous Programming in JavaScript – Callbacks, Promises, & Async/Await Examples


📈 27.68 Punkte
🔧 Programmierung

🔧 Master Asynchronous JavaScript: Promises, Async/Await, Fetch API + Pokémon Project


📈 27.68 Punkte
🔧 Programmierung

🔧 Callbacks, Callback Hell, Promises, Async/Await


📈 27.68 Punkte
🔧 Programmierung

🔧 Mastering Asynchronous JavaScript: Callbacks, Promises, and Async/Await


📈 27.68 Punkte
🔧 Programmierung

🔧 Using Promises and Async/Await in JavaScript


📈 27.68 Punkte
🔧 Programmierung

🔧 Async, Await, Promises ... in javascript


📈 27.68 Punkte
🔧 Programmierung

🔧 Callbacks, Callback Hell, Promises, Async/Await


📈 27.68 Punkte
🔧 Programmierung

🔧 Promises and Async/Await: Two Sides of the Same Coin 🚀


📈 27.68 Punkte
🔧 Programmierung

🔧 Understand the Asynchronous JavaScript: Callbacks, Promises, and Async/Await


📈 27.68 Punkte
🔧 Programmierung

🔧 📘 JavaScript Promises & Async/Await – A Beginner-Friendly Guide With Examples


📈 27.68 Punkte
🔧 Programmierung