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

171
Visualizações
En Chrome Extension, el método ".click()" de Javascript supuestamente es síncrono, pero el sitio web no se actualiza hasta que finaliza el código

Tengo una extensión para Google Chrome donde intento activar un clic en un botón en la página, luego espero 2 segundos y luego imprimo un mensaje. Cuando se hace clic en el botón, se vuelve azul para mostrar que se ha seleccionado.

 let element = document.getElementsByClassName("Button Button--alt Button--custom move-action-btn roster-action-btn").item(0); element.addEventListener(("click"), function(){ console.log("clicked") }) element.click() sleep(2000) console.log("done")

Esperaría que esto haga clic en el botón (y veo que se vuelve azul), registre "clic", espere 2 segundos, luego registre "hecho". Sin embargo, registra "clic", espera 2 segundos, registra "hecho", luego el botón se vuelve azul y parece que se ha hecho clic, aparentemente inmediatamente después de que registra "hecho".

Si Javascript .click() es síncrono, ¿por qué parece que se hace clic en el botón después de ejecutar la función y por qué el resultado real del clic es después del detector de eventos?

La función de suspensión para aquellos que se preguntan:

 function sleep(milliseconds) { const date = Date.now(); let currentDate = null; do { currentDate = Date.now(); } while (currentDate - date < milliseconds); }
about 4 years ago · Juan Pablo Isaza
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