Callback Example

by Porfirio Chavez

HTML

<script src="https://cdnjs.cloudflare.com/ajax/libs/async/2.5.0/async.min.js"></script>
<div id="log">

</div>

JavaScript

function comprarTicket(personas, callback){
	personas.forEach(function(persona){
  setTimeout(function(){
    if(Math.random() >= 0.5){ //Simular albedrio
      irASanitario(persona, callback);
    } else {
    	callback(persona);
    }
  }, 1000 * Math.random()); //Simular tiempo de decisión
 })  
}

function irASanitario(persona, callback){
  log(persona + ' entró al baño')
    setTimeout(function(){
      callback(persona);
    }, 3000 * Math.random()) //Simular tiempo en el baño
}

function entrarAlCine(name){
  log(name + ' entró al cine')
}

comprarTicket(['Juan', 'Alfonso', 'Roberto', 'Julio', 'Ignacio'], entrarAlCine);

/*** UTILS **/
function log(text){
  document.getElementById("log").innerHTML += text + '<br>'
}