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

111
Views
Las variables globales no se actualizan

He estado desconcertado sobre esto por un día o dos. Estoy tratando de crear un temporizador y extraje parte del código. No puedo entender por qué cuando registro la variable minutos o segundos , el valor sigue siendo 0. No cambia aunque las variables son variables globales. ¡Muchas gracias!

 let totalTime = 0; let minutes = Math.floor(totalTime / 60); let seconds = totalTime % 60; function countTime() { return totalTime += 1; } function startCount() { countInt = setInterval(countTime, 1000); } startCount() console.log(seconds); // Why does the output stay 0? 🤔
about 4 years ago · Juan Pablo Isaza
2 answers
Answer question

0

Yo lo haría así:

 var totalTime = 0; var minutes, seconds; function startTimer(){ let countInt = setInterval(() => { totalTime++; }, 1000); } function updateTimeData(){ minutes = Math.floor(totalTime / 60); seconds = totalTime % 60; } startTimer(); setTimeout(() => { updateTimeData(); console.log(seconds); }, 5000);

El setTimeout es necesario si desea obtener los resultados correctos. JavaScript es asíncrono, por lo que el archivo console.log en su código se llama instantáneamente y no espera el setInterval (porque está fuera de la función setInterval).

Por si no lo sabes:
setTimeout funciona como setInterval, pero solo llama una vez

about 4 years ago · Juan Pablo Isaza Report

0

En su código, countTime() solo se ejecuta después de 1 segundo, pero el archivo console.log se ejecuta inmediatamente.

Prueba esto:

 let totalTime = 0; let minutes = Math.floor(totalTime / 60); let seconds = totalTime % 60; function countTime() { // This will run every second totalTime += 1; minutes = Math.floor(totalTime / 60); seconds = totalTime % 60; console.log(minutes, seconds); // here you log after it has been updated. } function startCount() { countInt = setInterval(countTime, 1000); } startCount()
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!