Que formas de trabalhar com código assíncrono conheces?
sobes.tech IA
Resposta da IA
Callbacks, Promessas, async/await.
Callbacks: Funções passadas como argumentos para outras funções, que são chamadas após a conclusão de uma operação assíncrona.
Promessas: Objetos que oferecem uma forma mais conveniente de gerir a assíncronia em comparação com callbacks. Têm estados pending, fulfilled e rejected.
// Exemplo de Promessa
function asyncOperation() {
return new Promise((resolve, reject) => {
setTimeout(() => {
resolve('Operação concluída com sucesso!');
}, 1000);
});
}
asyncOperation()
.then(result => console.log(result))
.catch(error => console.error(error));
async/await: Açúcar sintático sobre Promessas, que torna o código assíncrono mais parecido com o síncrono e melhora a sua legibilidade.
// Exemplo de async/await
async function performAsyncOperation() {
try {
const result = await asyncOperation();
console.log(result);
} catch (error) {
console.error(error);
}
}
performAsyncOperation();
Comparação de métodos:
| Método | Legibilidade / Manutenção | Tratamento de erros | Controle do fluxo |
|---|---|---|---|
| Callbacks | Menos legível (Callback Hell) | Difícil | Difícil |
| Promessas | Melhorada | Confortável (.catch) | Confortável (.then, .catch) |
| async/await | Melhor | Confortável (try...catch) | Confortável (await) |
O método mais preferido em aplicações modernas de Node.js é usar async/await devido à sua legibilidade e conveniência. Promessas continuam a ser uma ferramenta importante, especialmente em níveis mais baixos de implementação. Callbacks são usados em código obsoleto ou para operações de baixo nível no núcleo do Node.js.