Callback - sabrinabm94/javascript GitHub Wiki
Callback
Permite executar uma função depois de uma ação, importante para entender o conceito de assincrono no js. É utilizado para fazer encadeamento de ações no código, onde uma só pode iniciar quando outra for finalizada.
function print(number) {
console.log("The number is " + number);
}
function firstOperation(a, b) {
print(a + b); //caso a operação demorasse, iria ocorrer a função print da mesma forma (sincrona)
}
function secondOperation(a, b, cb) {
cb(a * b); //aqui o print ocorreria somente após o cálculo ter sido finalizado (assincrona)
}
firstOperation(1, 1);
secondOperation(2, 2, print);
Timeout
Executa uma função após x milissegundos definidos.
console.log('antes do timeout');
let breakTimer = false;
let timeout = setTimeout(function() { //uma função que é passada para outra como parametro é considerada uma callback
console.log('após os 2s do timeout');
}, 2000); //2s em milissegundos
console.log('após o timeout');
breakTimer = true;
if(breakTimer === true) {
clearTimeout(timeout); //o clear vai executar antes dos 2s do timeout, impedindo sua execução.
}
Interval
Executa uma função sempre após um intervalo definido em milissegundos.
let breakInterval = 1;
let interval = setInterval(function() {
console.log('passou ' + breakInterval + 's');
if(breakInterval > 4) {
clearInterval(interval);
}
breakInterval++;
}, 1000); //1s em milissegundos