es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo detener la ejecución de una función al hacer clic en un botón en JS?

Tengo 3 archivos, electron.js, runme.js y homepage.js. Cuando se hace clic en el botón en homepage.js, se llama a runme() desde runme.js y se ejecuta. Este es un fragmento de cómo se ejecuta:

main.js

...
ipcRenderer.send('startIt');

electron.js

ipcMain.on('startIt', function ()){
const {runme} = require('./runme.js');
runme();
});

Sin embargo, cuando se hace clic en otro botón, me gustaría que la ejecución de runme() se detuviera. ¿Cómo implementaría esto?

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Una forma de implementar esto es creando una variable global en runme.js que actúe como una bandera para indicar si la función debe seguir ejecutando o detenerse. Por ejemplo:

    runme.js

    let stopRunning = false;
    
    function runme() {
      // código para ejecutar la función
      if (stopRunning) {
        return; // salir de la función si stopRunning es verdadero
      }
      // más código para ejecutar la función
    }
    
    module.exports = {
      stopRunning,
      runme
    };
    

    Luego, en homepage.js, se puede establecer la bandera stopRunning en true cuando se hace clic en el segundo botón:

    homepage.js

    const { stopRunning } = require('./runme.js');
    
    // manejador de clics para el segundo botón
    secondButton.addEventListener('click', () => {
      stopRunning = true;
    });
    

    Con esta implementación, cuando se hace clic en el segundo botón, la bandera stopRunning se establece en true, y la función runme() verifica esta bandera para salir temprano si es necesario.

Comments are closed.