Estoy tratando de borrar setInterval llamando a clearInterval. sin embargo, llamo a la función setInterval dentro de la función. Así que me gustaría activar el parámetro en setInterval por clearInterval, pero no sé cómo llegar a esto. Y lo que digo es confuso, así que solo quiero mostrarte el código:
function getAPI() { const polling = () => { if (convert !== undefined) { axios .post("/realtime", { GET_API_URL: convert.GET_API_URL, Headers1_key: convert.Headers1_key, Headers1_Value: convert.Headers1_Value, Headers2_key: convert.Headers2_key, Headers2_Value: convert.Headers2_Value, Headers3_key: convert.Headers3_key, Headers3_Value: convert.Headers3_Value, }) .then(response => { setRandom(response.data); }) .catch(error => { console.log(error); }); } else { alert("try again."); } }; setInterval(polling, convert.API_Read_Speed); } const init = () => { clearInterval(polling); // i want to call polling and i want to stop the axios posting };de acuerdo con su comentario, parece que necesita detener la votación en reacción. puede usar el gancho useRef para mantener la referencia del intervalo y borrarlo cuando lo desee.
useEffect(() => { interval.current = setInterval(() => { ... }, ms) }, [input]); const closeConnection = () => { clearInterval(interval.current); }Puede almacenar setInterval dentro de una variable y acceder a ella así.
Ejemplo:
let interval; function foo() { interval = setInterval(() => { ... }, ms) } function bar() { clearInterval(interval); }