Callbacks: funções que chamam outras funções

Aprenda o conceito de passar uma função como argumento para outra, essencial para eventos e assincronicidade.

Agora que você já conhece funções tradicionais, anônimas e arrow functions, vamos ver um conceito muito usado no JavaScript: callback.

Um callback é, de forma simples, uma função passada para outra função para ser executada depois.

Pense em uma pizzaria:

  • Você faz o pedido.
  • Deixa seu número.
  • Quando a pizza fica pronta, a pizzaria te liga.

Esse “te ligar depois” é a ideia de callback: uma ação que acontece quando outra termina.


O que é callback?

É uma função enviada como argumento para outra função.

Exemplo básico:

function executarOperacao(callback) {
  console.log("Executando operação principal...");
  callback();
}

function finalizar() {
  console.log("Operação finalizada!");
}

executarOperacao(finalizar);

Aqui:

  • finalizar é a função callback.
  • Ela é executada dentro de executarOperacao.

Callback com função anônima

Você também pode passar callback sem criar função separada:

function saudacao(nome, callback) {
  console.log("Olá, " + nome + "!");
  callback();
}

saudacao("Ana", function () {
  console.log("Seja bem-vinda ao curso!");
});

Callback com Arrow Function

Forma moderna e enxuta:

function saudacao(nome, callback) {
  console.log("Olá, " + nome + "!");
  callback();
}

saudacao("Carlos", () => {
  console.log("Vamos estudar JavaScript!");
});

Onde callbacks aparecem muito?

  • Eventos de clique em botões
  • setTimeout e setInterval
  • Métodos de arrays como map, filter, forEach
  • Operações assíncronas (como requisições)

Exemplo com setTimeout:

console.log("Início");

setTimeout(() => {
  console.log("Executou depois de 2 segundos");
}, 2000);

console.log("Fim");

Perceba que o código continua rodando, e o callback executa depois.


Vantagens de callbacks

  • Deixam o código flexível
  • Permitem personalizar comportamento
  • São base para entender assincronicidade em JavaScript

Cuidado: callback em excesso

Quando há callbacks demais aninhados, o código pode ficar confuso (o famoso “callback hell”).
Mais adiante você verá alternativas como Promises e async/await.


Resumo da lição

Callback é uma função passada como argumento para ser executada em outro momento ou contexto.
Esse padrão é essencial no JavaScript, principalmente para eventos e tarefas assíncronas.