rnaffer
10/27/2015 - 6:54 PM

Ejemplo del patrón de diseño "Recursive SetTimeout" con explicación.

Ejemplo del patrón de diseño "Recursive SetTimeout" con explicación.

// El orden empleando setInterval() puede ser impredecible ( 0 1 2 5 4 6 8 7).
// Invocar recursivamente a setTimeout() puede asegurar el orden de ejecución ( 0 1 2 3 4 5 6).
// Hasta que no finalize una ejecución no continua con las demás.

var ul = $('ul.log'),
    index = 0;
    
setTimeout(function getDate() {
  
  var started = new Date(),
      i = index;
      
  index++;
  
  $.get( '/home/date', function( date ) {
    
    var end = new Date();
    
    ul.append( '<li>Request ' + i + ' started at ' + started.getHours() +
               '. Finished: ' + end.getHours() );
    
    // LLamada recursiva
    setTimeout( getDate, 5000 );
    
  });
}, 5000);