$.Callbacks() code example

Example 1: callback

/*
tl;dr: Callbacks are a way to force one function to complete,
before running another. Used for asynchronus programming.
*/

// Consider this example:
  
names = ['Anthony', 'Betty', 'Camie']

function addName(name, callback){
	setTimeout(function(){
    	names.append(name)
      	callback()
    }, 200)
}

function getNames(){
	setTimeout(function(){
    	console.log(names)
    }, 100)
}

addName('Daniel', getNames)
/* 

addName('Daniel', getNames) is saying:

'finish the function addName() BEFORE running the function getNames()'

> 'getNames()' here is the callback

Without the call back in this example, getNames would finish 
before addName. (setTimeout is used to force one function to go slower)

Callbacks are given as arguments to other functions

*/

Example 2: callback function

function createQuote(quote, callback){ 
  var myQuote = "Like I always say, " + quote;
  callback(myQuote); // 2
}

function logQuote(quote){
  console.log(quote);
}

createQuote("eat your vegetables!", logQuote); // 1

// Result in console: 
// Like I always say, eat your vegetables!