Callbacks

Definição

Callback é uma função passada como argumento para outra função, que será executada posteriormente — geralmente após a conclusão de uma tarefa assíncrona.

Em programação assíncrona, callbacks são usados para "avisar" que uma tarefa terminou, permitindo que o código continue o fluxo depois do resultado estar pronto.

É uma das formas mais antigas e fundamentais de controlar o fluxo assíncrono, especialmente em JavaScript.

Objetivos do uso de Callbacks

  • Executar lógica dependente de uma tarefa assíncrona, após sua conclusão.
  • Evitar bloqueio do fluxo principal, mantendo a aplicação responsiva.
  • Encadear tarefas em etapas distintas, mantendo controle de tempo e ordem.
  • Controlar operações baseadas em eventos (como cliques, timers, carregamento de dados, etc.).

Exemplo prático

Vamos simular uma leitura de arquivo com atraso, usando setTimeout e um callback:

function lerArquivo(callback) {
  setTimeout(() => {
    const conteudo = "Dados do arquivo";
    callback(conteudo);
  }, 1000);
}

console.log("Início da leitura");
lerArquivo((dados) => {
  console.log("Arquivo lido:", dados);
});
console.log("Fim da função principal");

Saída esperada

Início da leitura
Fim da função principal
Arquivo lido: Dados do arquivo
  • A função lerArquivo não retorna o valor diretamente.

  • Ela recebe um callback que será chamado quando a tarefa for concluída.

  • O código continua executando normalmente enquanto a "leitura" ocorre.

O ciclo de um callback assíncrono

[Função inicia tarefa]
     ↓
[Agenda operação assíncrona]
     ↓
[Executa callback quando termina]

ℹ️ O callback serve como "notificador": ele espera, mas não bloqueia. Quando a operação assíncrona termina, ele é chamado com o resultado.

Problema frequente: Callback Hell

Encadeamento de múltiplos callbacks pode levar a um código difícil de ler e manter:

funcA((resA) => {
  funcB(resA, (resB) => {
    funcC(resB, (resC) => {
      console.log("Resultado final:", resC);
    });
  });
});

Isso é conhecido como callback hell — e foi uma das razões pelas quais surgiram Promises e async/await.

Alternativas modernas

Hoje, callbacks ainda são usados, mas geralmente são substituídos por:

  • Promises (encadeáveis e mais legíveis)

  • async/await (sintaxe imperativa com fluxo mais natural)

Relacionados

Política de Privacidade

Copyright © www.programicio.com Todos os direitos reservados

É proibida a reprodução do conteúdo desta página sem autorização prévia do autor.

Contato: programicio@gmail.com