O que é callback? 30.01.17 4:21
Callback é uma função que é usada como "callback". Ela é tipicamente passada como argumento de outra função e/ou chamada quando um evento for acontecido, ou quando uma parte de código receber uma resposta de que estava à espera.
Isto é muito comum em javascript lado cliente e servidor (NodeJS) mas não só. A função callback é muitas vezes assíncrona na medida em que é chamada como consequência de outro código que esta a correr no background. A grande vantagem é que assim o computador pode ir processando outros processos enquanto a resposta não chega e não precisa assim de parar tudo à espera dessa resposta.
Um exemplo clássico é um auscultador de eventos que chama uma função quando o evento acontece:
Exemplo: http://jsfiddle.net/D2PuH/
Outro exemplo é uma chamada de ajax, que faz um pedido ao servidor e corre a função quando receber a resposta.
Essa função é uma função "callback". No exemplo em baixo (http://jsfiddle.net/skQr7/) chamei-lhe minhaCallBack.
Outro exemplo ainda (http://jsfiddle.net/V3wDF/) é uma animação que chama a callback no fim da animação estar completa:
Fonte: stackoverflow
Isto é muito comum em javascript lado cliente e servidor (NodeJS) mas não só. A função callback é muitas vezes assíncrona na medida em que é chamada como consequência de outro código que esta a correr no background. A grande vantagem é que assim o computador pode ir processando outros processos enquanto a resposta não chega e não precisa assim de parar tudo à espera dessa resposta.
Um exemplo clássico é um auscultador de eventos que chama uma função quando o evento acontece:
- Código:
function callback(e) {
alert('Aconteceu um evento ' + e.type);
}
window.addEventListener('click', callback);
Exemplo: http://jsfiddle.net/D2PuH/
Outro exemplo é uma chamada de ajax, que faz um pedido ao servidor e corre a função quando receber a resposta.
Essa função é uma função "callback". No exemplo em baixo (http://jsfiddle.net/skQr7/) chamei-lhe minhaCallBack.
- Código:
function minhaCallBack(returnhtml) {
$("#result").html(returnhtml);
$("#loadingimg").hide();
}
$(document).ready(function (e) {
$.ajax({
url: form_url,
type: form_method,
data: form_data,
cache: false,
success: minhaCallBack
});
});
Outro exemplo ainda (http://jsfiddle.net/V3wDF/) é uma animação que chama a callback no fim da animação estar completa:
- Código:
function completa() {
alert('Este alert está dentro da função "callback"');
}
$('div').animate({
'height': '200px'
}, {
duration: 2000,
complete: completa
});
Fonte: stackoverflow