ce este un callback în JavaScript

ce este un callback? callback-ul este o funcție care va fi rulată îndată dupa ce va fi rulată o altă funcție, sună cam ciudat, nu?! Puteți spune că mai simplu nu se poate, funcțiile pot fi chemate una dupa alta

function A(){
    console.log('exec A');
}
function B(){
    console.log('exec B');
}
A();
B();

// exec A
// exec B

Dar acest lucru va merge doar atât timp cât timpul de execuție al funcției A va fi mai mic sau egal cu timpul de execuție al funcției B, în caz contrar acest lucru nu va mai merge, asta se datoreaza faptului ca JavaScript este un limbaj de programare determinat de evenimente (event-driven language). Deci, dacă marim timpul de execuție al funcției A, chiar daca funția va fi chemată ânainte de B, rezultatul îl vom vedea după B

function A(){
    setTimeout( function(){
		console.log('exec A - va aparea dupa 1 sec');
	},1000);
}
function B(){
    console.log('exec B - imediat');
}
A();
B();

// exec B - imediat
// exec A - va aparea dupa 1 sec

Bine, și cum facem ca și în acest caz să avem execuția funcției B imediat DUPA execuția funcției A?! O vom face cu ajutorul callback-ului, care cu cuvinte simple putem spune că nu este altceva decât B este argumentul funcției A

function A( callback ){
  setTimeout( function(){
    console.log( 'exec A - va aparea dupa 1 sec' );
    callback();
  }, 1000 );
}
 
function B(){
  console.log( 'exec B - imediat dupa A' );
}
 
A(function(){
  B();
});

// exec A - va aparea dupa 1 sec
// exec B - imediat dupa A 

aveți întrebări? scrițile mai jos 🙂
have fun!