Sobes.tech
Junior

Que métodos de trabalhar com código assíncrono você conhece?

sobes.tech IA

Resposta da IA

  • Funções de callback: Passar uma função como argumento para outra função, que será chamada após a conclusão de uma operação assíncrona. Podem levar a um "callback hell".
  • Promessas (Promises): Objetos que representam a conclusão (ou falha) de uma operação assíncrona e seu valor resultante. Oferecem uma gestão mais estruturada da assíncronia.
    // Exemplo de uso de promessa
    fetch('/api/data')
      .then(response => response.json()) // Tratamento de resposta bem-sucedida
      .then(data => console.log(data)) // Tratamento dos dados recebidos
      .catch(error => console.error('Erro ao buscar dados:', error)); // Tratamento de erro
    
  • Async/await: Açúcar sintático sobre promessas, permitindo escrever código assíncrono em um estilo mais síncrono, tornando-o mais legível e fácil de depurar.
    // Exemplo de uso de async/await
    async function fetchData() {
      try {
        const response = await fetch('/api/data'); // Espera pela promessa
        if (!response.ok) {
          throw new Error(`Erro HTTP! status: ${response.status}`);
        }
        const data = await response.json(); // Espera pela promessa
        console.log(data);
      } catch (error) {
        console.error('Erro ao buscar dados:', error); // Tratamento de erro
      }
    }
    fetchData();
    
  • Geradores (Generators): Podem ser usados para trabalhar com assíncronia em combinação com a biblioteca co ou manualmente, embora async/await tenha se tornado uma abordagem mais comum.

Comparação dos principais métodos:

Método Vantagens Desvantagens
Callbacks Simples na fase inicial "Callback hell", complexidade no tratamento de erros
Promessas Melhor legibilidade, tratamento de erros Podem ser volumosos em cadeias de operações
Async/await Alta legibilidade, semelhança com código síncrono Requer suporte de ambiente para async/await