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

258
Vistas
cómo ejecutar el código 3 segundos después una vez ejecutado en un bucle infinito

Estoy creando un juego usando un lienzo html en el que quiero verificar ciertas condiciones cada vez en el bucle animado y si esa condición se vuelve verdadera una vez, entonces no quiero verificar los próximos 3 segundos y después de 3 segundos quiero verificar nuevamente . Me gusta

 function animate(){ requestAnimationFrame(animate) if (checking something){ if this if statement gets executed then don't check this if statement for next 3 seconds }

Esto puede sonar un poco confuso, pero ¿hay alguna forma de hacerlo?

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Mi sugerencia sería agregar una bandera: otra variable que puede usar para verificar si se debe realizar una operación y otra función que alternará la bandera después de una cierta cantidad de tiempo.

 // THE CHECKING FLAG let shouldCheckCondition = true; function animate(){ requestAnimationFrame(animate) // CHECK THE FLAG FIRST, IF SHOULD NOT CHECK, EXIT THE FUNCTION if (!shouldCheckCondition) return; if (condition){ // DISABLE THE CHECKING FLAG SO YOU SKIP THE SUBSEQUENT CHECKS shouldCheckCondition = false; // DO SOMETHING WHEN CONDITION IS MET AND CHECKING SHOULD BE DONE // ENABLE THE CHECKING FLAG AFTER 3 second setTimeout(() => { shouldCheckCondition = true; }, 3000); }
about 4 years ago · Juan Pablo Isaza Denunciar

0

Si desea hacerlo en línea dentro de otro método, es posible que setInterval no ayude.

Simplemente puede tomar nota de la última vez que realizó esa verificación (por ejemplo, la hora del sistema en milisegundos) y luego asegurarse de que hayan pasado más de 3000 ms después de eso la próxima vez que realice la verificación.

 date.valueOf(); //An existing date object to milliseconds format (new Date()).valueOf(); //current time in ms

Puede tener dos var s lastCheckedTime y currentTime .

about 4 years ago · Juan Pablo Isaza Denunciar

0

requestAnimationFrame intenta ejecutarse en el siguiente cuadro, no después de tres segundos. Así que no uses requestAnimationFrame si quieres tres segundos.

 function animate(){ if (checking something){ setTimeout(animate, 3000); } else { requestAnimationFrame(animate); } }
about 4 years ago · Juan Pablo Isaza 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