Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

123
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda