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

206
Views
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 answers
Answer question

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 Report

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 Report

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 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!