Definição de funções callback
Funções callback em JavaScript nada mais é uma função que é passada como argumento para outra função e é chamada de volta (executada) quando a função principal termina sua execução ou atinge um determinado ponto. O callback permite que o código assíncrono seja executado de forma não bloqueante, permitindo que outras operações sejam realizadas enquanto o código assíncrono está sendo executado em segundo plano. Os callbacks são amplamente utilizados em JavaScript para lidar com eventos, chamadas assíncronas de APIs e outras operações assíncronas.
Utilidade das funções callback
As funções callback são muito úteis em JavaScript, pois permitem que o código seja executado de forma assíncrona e não bloqueante, o que significa que outras operações podem ser realizadas enquanto o código está sendo executado em segundo plano. Aqui estão algumas das utilidades das funções callback:
- Manipulação de eventos: As funções callback são frequentemente usadas para manipular eventos em JavaScript, como o clique do mouse ou o envio de um formulário. Quando o evento ocorre, o callback é chamado para lidar com ele.
- Chamadas assíncronas de APIs: Quando uma chamada de API é feita em JavaScript, ela geralmente é assíncrona e leva algum tempo para retornar uma resposta. Para lidar com a resposta da API, é comum usar uma função callback que é chamada quando a resposta é recebida.
- Animações: As funções callback também são úteis para animações em JavaScript. Elas podem ser usadas para executar uma série de ações em um determinado tempo e depois chamar o callback quando a animação estiver concluída.
- Tratamento de erros: As funções callback podem ser usadas para lidar com erros em JavaScript. Se ocorrer um erro durante a execução do código, o callback pode ser chamado para lidar com ele e exibir uma mensagem de erro para o usuário.
- Modularização de código: As funções callback também são úteis para modularizar o código em JavaScript. Elas permitem que as funções sejam passadas como argumentos para outras funções, tornando o código mais modular e fácil de manter.
Essas são apenas algumas das muitas utilidades das funções callback. Elas são amplamente usadas em todo o ecossistema do JavaScript e são uma parte importante do arsenal de qualquer desenvolvedor JavaScript.
Exemplo de callback
Um exemplo simples de como o callback é usado em JavaScript é o método setTimeout
. O setTimeout
é uma função que permite que outra função seja executada depois de um certo tempo em milissegundos. A função passada para o setTimeout
é um callback que será executado após o tempo especificado ter passado.
Por exemplo, suponha que temos uma função chamada mensagemDeBoasVindas
que imprime uma mensagem de boas-vindas no console. Podemos usar o setTimeout
para atrasar a execução dessa função em 3 segundos. Aqui está o código:
function mensagemDeBoasVindas() { console.log("Bem-vindo!"); } setTimeout(mensagemDeBoasVindas, 3000); // aqui é passado a função mensagemDeBoasVindas como callback
Nesse exemplo, a função mensagemDeBoasVindas
é passada como um argumento para o setTimeout
. Quando o setTimeout
é executado, ele espera por 3 segundos e, em seguida, executa o callback (no caso, a função mensagemDeBoasVindas
) que imprime “Bem-vindo!” no console.
Esse é um exemplo simples de como o callback pode ser usado para executar uma função após um certo tempo ou evento assíncrono. O callback permite que o código continue sendo executado enquanto aguarda a finalização do tempo ou evento assíncrono, evitando que o programa pare ou congele.
Exemplo de callback simulando uma API
Suponha que temos uma API que retorna informações de um usuário com base em seu ID. A chamada para a API é assíncrona, o que significa que leva algum tempo para receber a resposta da API. Para lidar com a resposta da API, podemos usar um callback.
Aqui está um exemplo de como podemos implementar uma chamada assíncrona para a API e usar um callback para manipular a resposta:
function getUser(id, callback) { // Simula uma chamada assíncrona para a API setTimeout(() => { // Suponha que isso é a resposta da API const user = { id: id, name: "João" }; // Chama o callback e passa a resposta da API como argumento callback(user); }, 2000); // Simula um atraso de 2 segundos na resposta da API } function exibeUsuario(usuario) { console.log("ID do usuário:", usuario.id); console.log("Nome do usuário:", usuario.name); } // Faz uma chamada para a função getUser e passa a função exibeUsuario como callback getUser(123, exibeUsuario);
Neste exemplo, a função getUser
simula uma chamada assíncrona para a API usando o setTimeout
. Quando a resposta da API é recebida (após um atraso de 2 segundos), a função callback
é chamada e a resposta da API (um objeto user
) é passada como argumento para a função exibeUsuario
.
A função exibeUsuario
é o callback que lida com a resposta da API. Ele exibe o ID e o nome do usuário no console. Ao passar a função exibeUsuario
como callback para a função getUser
, garantimos que a resposta da API será manipulada assim que for recebida, sem bloquear a execução do restante do código.