Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

213
Vistas
¿Por qué clearInterval y clearTimeout hacen que el autoincremento sea más lento?

Funciona bien, ya que pude detenerme cuando se alcanzó el límite determinado a través de la iteración.

Pero me pregunto por qué cuando traté de retrasar el tiempo de ejecución de setInterval, el incremento de la barra de progreso se vuelve más lento.

Aumentar el tiempo de retraso de setInterval o setTimeout afectaría la velocidad a una más lenta.

Lo que quería es retrasar la ejecución en 5 segundos, y la velocidad de incremento es de 1 por segundo.

 const [progressBar, setProgressBar] = React.useState(0); let timeout; let interval; React.useEffect( () => { timeout = setTimeout(() =>{ if(progressBar === 100){ return clearTimeout(timeout); } else{ interval = setInterval(() =>{ if(progressBar === 100){ clearInterval(interval); } else{ setProgressBar(prev_value => prev_value + 1); } },10); } }, 10); return () => { clearTimeout(timeout); clearInterval(interval); }; }, [progressBar]); let divStyle = { backgroundColor: "green", width: "100px", maxWidth: `${progressBar}px`, border: "1px solid red" }

JSX

 <div className='progress-bar' style={divStyle}>{progressBar}</div>
about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Creo que usas el error de enlace, si usas setState dentro de reaccionar, eso será volver a ejecutar esa función en el mundo de reacción.

por lo tanto, su intervalo siempre se ejecuta 1 vez porque destruye que en destruir devuelva la llamada,

una vez que establezca el Estado que se activará en función de sus dependencias de useEffect ,

Creo que deberías escribir eso así. no necesita ningún deps y solo borra ese intervalo cuando ese valor se convierte en lo que desea.

tal vez eso sea útil. https://stackblitz.com/edit/react-ts-any9su?file=App.tsx

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda