Skip to content

Instantly share code, notes, and snippets.

@lupomontero
Last active March 29, 2017 02:02
Show Gist options
  • Save lupomontero/c604fa4ea6704c7b3e2ac9f1c9373a26 to your computer and use it in GitHub Desktop.
Save lupomontero/c604fa4ea6704c7b3e2ac9f1c9373a26 to your computer and use it in GitHub Desktop.

countdownAsync

Implementa una función, que dado un número entero positivo y dos funciones pasadas como argumentos (n, update y end), invoque la función update() cada 200 milisegundos un total de n veces. La primera vez que se invoca update() debe pasar como argumento el valor original de n, y de ahí en adelante decreciendo el valor por 1 hasta llegar a 1.

void countdownAsync( int n, function update, function end )

Ejemplo:

countdownAsync(5, function update(n) {
  console.log(n); // La primera vez es 5, después 4, de ahí 3 y así hasta 1.
}, function end() {
  console.log('done'); // Esto sólo se debe ejecutar una vez y al final.
});

Input/Argumentos:

  • n: un número entero positivo
  • update: una función
  • end: una función
'use strict';
function countdownAsync(n, update, end) {
if (n < 1) {
return end();
}
update(n);
setTimeout(function () {
countdownAsync(n - 1, update, end);
}, 1000);
}
countdownAsync(5, function update(n) {
console.log(n);
}, function end() {
console.log('terminé');
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment