¿Que me estoy perdiendo aqui? Puedo llamar a la función myInterval, pero no puedo detenerla con clearInterval.
const getData = () => { db.transaction((tx) => { tx.executeSql( "SELECT * FROM itinerary_details", [], (tx, results) => { var data = []; for (let i = 0; i < results.rows.length; ++i) data.push(results.rows.item(i)); console.log(data) } ) }) }Así que estoy tratando de tener 2 botones con 2 funciones diferentes a las que puedo llamar:
para comenzar:
const myInterval = () => { setInterval(getData, 5000) }para finalizar setInterval:
const stopData = () => { clearInterval(myInterval) console.log("STOPED") }Puedo ver el archivo console.log, pero no llamar a la función myInterval
Por favor ayuda.
Debe almacenar el ID de intervalo en algún lugar y, al borrarlo, necesita este.
let intervalID = null; // global const startData = () => { if (intervalID !== null) return; intervalID = setInterval(getData, 5000); }, stopData = () => { if (intervalID === null) return; clearInterval(intervalID); intervalID = null; console.log("STOPED"); }, getData = () => console.log(new Date().toISOString() + ': getData'); document.getElementById('start').addEventListener('click', startData); document.getElementById('stop').addEventListener('click', stopData); <button id="start">Start</button> <button id="stop">Stop</button>