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
coou manualmente, emboraasync/awaittenha 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 |