es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Contador no muestra cada número, solo muestra el total final.

¿Por qué sucede que el contador solo muestra el número final en lugar de ver cada número uno por uno? ¿Qué hay que hacer para lograr esto?

var counter = 100;
function countdown() {

 while(counter < 1000) {

    counter++;
    console.log(counter);
    document.getElementById('cc').innerHTML = counter;

  }
}

countdown();
setInterval(countdown, 1000);

¿Por qué sucede que el contador solo muestra el número final en lugar de ver cada número uno por uno? ¿Qué hay que hacer para lograr esto?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    La razón por la cual el contador solo muestra el número final en lugar de mostrar cada número uno por uno es debido al hecho de que el bucle while dentro de la función de cuenta regresiva se ejecuta instantáneamente sin ningún retraso. Esto significa que el bucle se ejecutará muy rápidamente y se alcanzará el número final antes de que el usuario pueda ver cualquiera de los números intermedios.

    Para lograr el comportamiento deseado de mostrar cada número uno por uno, debemos usar la función setTimeout en lugar del bucle while. Esta función nos permitirá retrasar la ejecución de cada iteración del bucle en un intervalo de tiempo especificado. Aquí tienes una versión actualizada del código que utiliza setTimeout:

    var contador = 100;
    
    function cuentaRegresiva() {
      if (contador < 1000) {
        contador++;
        console.log(contador);
        document.getElementById('cc').innerHTML = contador;
        setTimeout(cuentaRegresiva, 1000);
      }
    }
    
    cuentaRegresiva();
    

    En este código actualizado, hemos utilizado la recursión en lugar de un bucle while, y la función setTimeout se utiliza para retrasar cada iteración en 1 segundo. Esto se asegurará de que el contador se muestre en la pantalla uno por uno, dando la ilusión de una cuenta regresiva.

Comments are closed.