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 - lerArquivonã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)
 ECOSSISTEMA PYTHON
 ECOSSISTEMA PYTHON  LINUX
 LINUX  ASSEMBLY NASM
 ASSEMBLY NASM  JAVA
 JAVA