Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

105
Visualizações
javascript terminate onkeydown eventlistener

I have function that waits for a certain user response (pressing a key).

async function alert(){
  let alert_response = await testing_501_alert_response()
}

async function testing_501_alert_response() {
 key_code = [99, 67, 113, 81, 114, 82]
 return new Promise((resolve) => {
    document.addEventListener('keydown', onKeyHandler);
    function onKeyHandler(e) {
        if (key_code.includes(e.keyCode)) {
            document.removeEventListener('keydown', onKeyHandler);
            resolve(e.keyCode);
        }
    }
  });
}

I would like to be able to abort this "wait" i.e. have a button on the form with onlclick event that will terminate the execution.

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Here is an example of implementing a removeEventListener on button click:

function trigger() {
  key_code = [99, 67, 113, 81, 114, 82] // c
  document.addEventListener('keydown', onKeyHandler);
}

function cancel() {
  document.removeEventListener('keydown', onKeyHandler);
}

function onKeyHandler(e) {
  console.log(e.keyCode)
  if (key_code.includes(e.keyCode)) {
    document.removeEventListener('keydown', onKeyHandler);
    
    // do whatever you want with this handler here
  }
}
body { margin: 0; }
.as-console-wrapper { min-height: 85%; top: auto; }
<button onclick="trigger()">trigger</button>
<button onclick="cancel()">cancel</button>

https://jsfiddle.net/9b2xf1no/2/

about 4 years ago · Juan Pablo Isaza Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda