Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

104
Vistas
Javascript Event Listener cuando no sucede nada después de un período de tiempo

Preguntaría si alguien conoce un Event Listener, que comienza a funcionar cuando no se presiona un botón en el teclado durante un período de tiempo determinado, algo así:

 document.addEventListener('wait', myFunction);
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Puede usar setTimeout y clearTimeout para esto.

setTimeout ejecuta una función después de un período de tiempo específico. También devuelve una ID que se puede pasar a clearTimeout .

clearTimeout cancela el tiempo de espera asociado con la ID que le das.

Llamaría a setTimeout para iniciar el "temporizador inactivo" y almacenaría la ID del temporizador en una variable. Luego, si el usuario presionó una tecla (que podría detectar usando un detector de eventos de keypress de tecla), entonces usaría clearTimeout para cancelar el temporizador (y tal vez comenzarlo de nuevo).

about 4 years ago · Juan Pablo Isaza Denunciar

0

Puede encontrar una respuesta útil aquí: Cómo detectar el tiempo de inactividad en JavaScript

Usaría el evento 'keypress' . ¡Así que básicamente cree un tiempo de espera y reinícielo cada vez que presione una tecla!

¡Espero eso ayude!

about 4 years ago · Juan Pablo Isaza Denunciar

0

No hay un oyente que haga eso. Así que tal vez:

  1. Configure una variable de estado que se restablece cuando se presiona una tecla.

  2. Crea una función de retardo. En este ejemplo, devuelvo una promesa de la función que se puede awaited .

  3. Cuando se llama a main , awaits que se resuelva la promesa de delay . Si no se ha presionado ninguna tecla, llama a una función y espera a que se complete, luego vuelve a llamar a main ; de lo contrario, no se realiza ninguna otra acción.

 // Cache the output element used in `writer` const output = document.querySelector('.output'); // Initialise the status let status = false; // Check for `keypress` events document.addEventListener('keypress', () => status = true); // Accepts an argument specifying how // many milliseconds delay there will be function delay(n) { return new Promise(res => { setTimeout(() => res(), n); }); } // Random function to test the delay works function writer() { return new Promise(async res => { const str = 'Hello world!'; for (let i = 0; i <= str.length; i++) { await delay(250); output.textContent = str.substr(0, i); } res(); }); } // Wait 3 seconds. If no key has been pressed // call the `writer` function. Reset the status, and // call `main` again async function main() { await delay(3000); if (!status) { console.log('No key pressed - calling writer()'); await writer(); } else { console.log('Key pressed - no further action'); } status = false; main(); } main();
 <div class="output"></div>

about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda