Service Workers & Progressive Web Apps

How can you implement a fallback response in a Service Worker?
self.addEventListener('fetch', event => {
  event.respondWith(
    caches.match(event.request)
      .then(response => {
        return response || fetch(event.request)
          .catch(() => {
            if (event.request.destination === 'image') {
              return caches.match('/offline-image.png');
            }
            return caches.match('/offline.html');
          });
      })
  );
});
Next Question (17/20)