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

209
Vistas
cómo detener setInterval en reaccionar nativo

estoy ejecutando una función setinterval para verificar un pago de coinbase en mi aplicación nativa de reacción, ejecuto la función cada 10 segundos, después de que se haya realizado el pago, borro el setinterval y navego a la página de inicio, pero aún así el setinteval mantiene corriendo ¿cómo puedo detener esto?

 useEffect(() => { getData(); myinterval(); }, []); const myinterval= () => setInterval(function () { checkCharge(); }, 10000); const stopCounter = () => { clearInterval(myinterval); } const checkCharge = async () => { try { ...SOME_CODE_HERE... stopCounter() navigation.navigate("HomeScreen"); } catch (e) { console.log(e); } };
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Creo que es porque myinterval está asignado a una función y no al valor de retorno real de la función setInterval() . Así que trata de cambiar

 const myinterval = () => setInterval(function () { checkCharge(); }, 10000);

a

 const myinterval = setInterval(function () { checkCharge(); }, 10000);

y luego cancelar la variable myinterval con clearInterval(myinterval);

about 4 years ago · Juan Pablo Isaza Denunciar

0

me encontré con un problema similar hace algunos meses, esta solución debería funcionar perfectamente:

 const myinterval = setInterval(function () { checkCharge(); }, 10000);

pero en mi caso, dado que setInterval en una variable en lugar de una función, tuve algunos problemas extraños, como que setInterval podría ejecutarse tres veces o seguir ejecutándose incluso después de usar clearInterval(INTERVAL_NAME); entonces, si desea verificar si se realizó un pago, cree un botón que le diga al usuario que haga clic cuando haya realizado el pago, esto sería mucho más seguro que ejecutar la función dentro de setInterval

about 4 years ago · Juan Pablo Isaza Denunciar

0

No está utilizando el retorno de myinterval() para borrar setInterval . setInterval() devuelve una identificación que se usa para borrar el intervalo. Cuando llama a la función myinterval , está devolviendo esa ID. Lo que debe hacer es almacenar esa ID en una variable que puede usar para borrar el intervalo.

 ... function createInterval(){ return setInterval(checkCharge, 10000); } function stopCounter(id){ clearInterval(id); } ... var id = createInterval(); ... function checkCharge(){ try { ... stopCounter(id); ... } catch(e){ console.error(e); } }
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