This is an experimental technology Because this technology's specification has not stabilized, check the compatibility table for usage in various browsers. Also note that the syntax and behavior of an experimental technology is subject to change in future versions of browsers as the specification changes.
The open() method of the CacheStorage interface returns a Promise that resolves to the Cache object matching the cacheName.
Note: If the specified Cache does not exist, a new cache is created with that cacheName and a Promise that resolves to this new Cache object is returned.
//FIX: What is caches? is it a global variable and short for (CacheS)torage?
//do something with your cache
If not, open the v1 cache using CacheStorage.open, put the default network request in the cache using Cache.put and return a clone of the default network request using return response.clone() — necessary because put() consumes the response body.
If this fails (e.g., because the network is down), return a fallback response.