Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

179
Views
setTimeout siendo llamado varias veces

No puedo entender por qué se llama a setTimeout varias veces en mi código. Aquí hay un fragmento del código con lo que pensé que era irrelevante eliminado:

 let dead; setup() { dead = false; } draw() { if(fell == true) { dead = true; } mechanics(); } function mechanics() { let triggerVar; if(dead == true) { triggerVar = 1; dead = false; } if(triggerVar == 1) { setTimeout(resetG, 1500); triggerVar = 0; } } function resetG() { lives -= 1; position = 0; }

No puedo decir qué estoy haciendo mal porque cada vez que el personaje muere y se llama a setTimeout, en realidad no solo se llama después del retraso sino también por exactamente la misma duración después de que se activa. Entonces, en este caso, se activa primero después de 1500 milisegundos y luego cada fotograma durante otros 1500 milisegundos.

about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Logré encontrar el problema, que no estaba en el código que publiqué. El problema era que el código del constructor que hace que el objeto que cambia muerto se convierta en verdadero si se cumplen ciertas condiciones se llamaba en cada cuadro desde el momento en que provocó la muerte hasta que se activó la primera instancia de setTimeout, lo que significa que se llamó a setTimeout en cada cuadro durante 1500 milisegundos.

about 4 years ago · Juan Pablo Isaza Report

0

Lo más probable es que su función mechanics() se llame varias veces, puede dar una variable al settimeout como:

 let timeoutID= setTimeout(resetG, 1500);

Y en el lugar adecuado para limpiarlo, por ejemplo, después del ciclo de vida

 clearTimeout(timeoutID);
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!