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

231
Visualizações
¿Cómo puedo detectar si falla la instalación de un trabajador de servicio?

Mi serviceworker es generado parcialmente por gulp, por lo que existe la posibilidad de que termine con un SyntaxError o TypeError si he cometido un error, y me gustaría estar a punto de detectar en mi código navigator.serviceWorker.register que esto ha ocurrido y enviar un informe de error.

No he descubierto cómo hacer esto. Supuse que habría algún tipo de evento "en caso de error", pero no he encontrado ninguno. Parece que tal vez estoy buscando un SW con un estado redundant ...

Lo intenté

 const newWorker = reg.installing newWorker.addEventListener('statechange', () => { if (newWorker.state == 'redundant') { // log error } })

pero la condición no parece dispararse. Esta condición tampoco se dispara:

 reg.addEventListener('updatefound', () => { if (reg.redundant) { // log error } })

No veo ningún ejemplo de esto en los tutoriales de SW, lo cual es sorprendente, ya que parece algo básico para notar y detectar.

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

0

Si hay un error de sintaxis, o si su trabajador de servicio contiene algo que no es JavaScript válido, su llamada a navigator.serviceWorker.register() será rechazada. (También podría rechazar si hay un error de red que impide que se descargue el script).

Si su trabajador de servicio contiene JavaScript válido pero genera una excepción de tiempo de ejecución antes de finalizar el paso de install , entonces el trabajador de servicio pasará del estado de installing a redundant . Tenga en cuenta que en este escenario, navigator.serviceWorker.register() no se rechazará, ya que la transición de estado redundant ocurre después de que el registro se haya realizado correctamente.

 navigator.serviceWorker.register('sw.js') .then((reg) => { // reg.installing may or may not be set, depending on whether // a new SW was registered. reg.installing?.addEventListener('statechange', (event) => {\ if (event.target.state === 'redundant') { // There was a runtime error. } }); }) .catch((err) => console.log('SW registration failed:', err));
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