Em Node.js, um callback é uma função que é passada como um argumento para outra função e é chamada quando um determinado evento ocorre ou o processamento é concluído. Os callbacks são amplamente utilizados no Node.js devido à sua natureza assíncrona, o que significa que o código é executado de forma concorrente ao invés de de forma síncrona. Isso permite que o Node.js execute várias tarefas ao mesmo tempo, o que é útil quando você precisa realizar tarefas que podem levar muito tempo, como acessar um banco de dados ou fazer uma solicitação HTTP.
Por exemplo, imagine que você deseja ler um arquivo do disco e imprimir seu conteúdo no console. Em vez de bloquear a execução enquanto o arquivo é lido, você pode passar uma função callback para a função de leitura de arquivo, que será chamada assim que o arquivo for lido. Isso permite que o Node.js execute outras tarefas enquanto aguarda o término da leitura do arquivo.
Um exemplo de código que utiliza um callback em Node.js é o seguinte:
const fs = require('fs');
fs.readFile('arquivo.txt', (erro, dados) => {
if (erro) {
console.error(erro);
return;
}
console.log(dados);
});
Neste exemplo, a função readFile
é usada para ler um arquivo do disco. A função recebe dois argumentos: o nome do arquivo e uma função callback. A função callback recebe dois argumentos: um objeto de erro (que é null
se não houver erro) e os dados lidos do arquivo. Se a leitura do arquivo for bem-sucedida, os dados são imprimidos no console. Se houver um erro, a mensagem de erro é impressa no console.
Os callbacks são uma parte importante da programação assíncrona em Node.js e são amplamente utilizados em muitas bibliotecas e frameworks populares, como o Express (para criar aplicativos web) e o MongoDB (para acessar bancos de dados).