when a function takes a long time to execute, javaScript waits for the execution to get over and then moves to the next line code example
Example: wait until a function finishes javascript
function firstFunction(_callback){
// do some asynchronous work
// and when the asynchronous stuff is complete
_callback();
}
function secondFunction(){
// call first function and pass in a callback function which
// first function runs when it has completed
firstFunction(function() {
console.log('huzzah, I\'m done!');
});
}