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