CacheStorage.has()
  The has() method of the CacheStorage
  interface returns a Promise that resolves to true if a
  Cache object matches the cacheName.
  You can access CacheStorage through the global
  caches property.
Syntax
caches.has(cacheName).then(function(boolean) {
  // true: your cache exists!
});
Parameters
cacheName- 
    
A
DOMStringrepresenting the name of theCacheobject you are looking for in theCacheStorage. 
Return value
  a Promise that resolves to true if the cache exists or
  false if not.
Examples
The following example first checks whether a cache called 'v1' exists. If so, we add a list of assets to it. If not then we run some kind of cache set-up function.
caches.has('v1').then(function(hasCache) {
  if (!hasCache) {
    someCacheSetupFunction();
  } else {
    caches.open('v1').then(function(cache) {
      return cache.addAll(myAssets);
    });
  }
}).catch(function() {
  // Handle exception here.
});
Specifications
| Specification | 
|---|
| Service Workers 1  # cache-storage-has  | 
Browser compatibility
BCD tables only load in the browser