Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

228
Views
¿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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!