es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo ocultar la traza de la pila desde el fetch del service worker

Tengo un service worker como este:

self.addEventListener('fetch', function (event) {
    event.respondWith(new Promise(function(resolve, reject) {
       // ...
       fetch(event.request).then(resolve).catch(reject);
    }));
});

No recuerdo dónde encontré este código, pero cuando uso un bloqueador de anuncios junto con un error 404, en la consola veo un rastreo de la pila:

Service worker Stack Trace in Dev console

¿Hay alguna forma de deshacerse de ese rastreo de la pila? Solo necesito saber que la solicitud de búsqueda ha fallado (ver el segundo mensaje de error).

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Sí, hay una forma de deshacerse de la traza de pila y solo ver el mensaje de error. Puedes envolver la llamada a la función fetch en un bloque try-catch y solo devolver el mensaje de error en el callback reject. Aquí tienes un ejemplo:

    self.addEventListener('fetch', function (event) {
      event.respondWith(new Promise(function(resolve, reject) {
        // ...
        try {
          fetch(event.request).then(resolve).catch(function(error) {
            reject(error.message);
          });
        } catch (error) {
          reject(error.message);
        }
      }));
    });
    

    Al capturar el error y devolver solo el mensaje de error, la traza de pila no se imprimirá en la consola.

Comments are closed.