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

239
Vistas
Obtenga elementos devueltos de la función dentro de setTimeout en Javascript

Así que necesito un poco de retraso en mi JavaScript para una función dentro de un ciclo que debería llamarse cada 500 ms:

 function myFunc(num) { return num++; } var theNum = 0; while (theNum != 10) { theNum = setTimeout(myFunc(theNum), 500); } console.log("All done");

Sin embargo, All done nunca se registra.

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

0

  1. Estás llamando a la función inmediatamente. En su lugar, debe pasar la referencia de función a setTimeout .

  2. Y también estás creando un bucle infinito debido a ese problema.

  3. Incluso si corrige este problema, "Todo listo" aún se registrará primero antes de que se complete cualquiera de los tiempos de espera.

Así que necesitas repensar el enfoque. Ponga el tiempo de espera en una función y si theNum es menor que 10, vuelva a llamar a la función con el número incrementado ( setTimeout le permite pasar argumentos después del retraso). Registre "Todo listo" cuando el conteo llegue a 10.

 function myFunc(num) { return `Number: ${num}`; } function loop(theNum = 0) { if (theNum < 10) { console.log(myFunc(theNum)); setTimeout(loop, 500, ++theNum); } else { console.log("All done"); } } loop();

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