Tengo este código, donde agrego mis oyentes de clic de botón para llamar a mi función startTempMonit
$(function () { const inter; $("#buttonStartTemp").click(function () { inter = startTempMonit(onFetchCallback.store); }); $("#buttonStopTemp").click(function () { clearInterval(inter); //inter is undefined }); }); function startTempMonit(callback) { var time = 0; const Interval= setInterval(function () { ... }, 500); return Interval; } Me gustaría saber cómo exponer el const Interval devuelto en startTempMonit para poder borrarlo cuando hago clic en el otro botón ( #buttonStopTemp ).
También intenté definir const inter; en el ámbito exterior, que no me gustaría, pero tampoco funciona.
Tienes que inicializar una constante. En su lugar, declara inter con var :
$(function () { var inter; $("#buttonStartTemp").click(function () { inter = startTempMonit(()=>console.log(1)); }); $("#buttonStopTemp").click(function () { clearInterval(inter); }); }); function startTempMonit(callback) { var time = 0; const Interval= setInterval(callback, 500); return Interval; } <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <button id="buttonStartTemp">Start</button> <button id="buttonStopTemp">Stop</button>