Back to Content

CacheStorage: delete() method

files/en-us/web/api/cachestorage/delete/index.md

latest1.9 KB
Original Source

{{APIRef("Service Workers API")}}{{SecureContext_Header}}{{AvailableInWorkers}}

The delete() method of the {{domxref("CacheStorage")}} interface finds the {{domxref("Cache")}} object matching the cacheName, and if found, deletes the {{domxref("Cache")}} object and returns a {{jsxref("Promise")}} that resolves to true. If no {{domxref("Cache")}} object is found, it resolves to false.

You can access CacheStorage through the {{domxref("Window.caches")}} property in windows or through the {{domxref("WorkerGlobalScope.caches")}} property in workers.

Syntax

js-nolint
delete(cacheName)

Parameters

  • cacheName
    • : The name of the cache you want to delete.

Return value

A {{jsxref("Promise")}} that resolves to true if the {{domxref("Cache")}} object is found and deleted, and false otherwise.

Examples

In this code snippet we wait for an activate event, and then run a {{domxref("ExtendableEvent.waitUntil","waitUntil()")}} block that clears up any old, unused caches before a new service worker is activated. Here we have an array of cache names we want to keep (cachesToKeep). We return the keys of the caches in the {{domxref("CacheStorage")}} object using {{domxref("CacheStorage.keys")}}, then check each key to see if it is in the array. If not, we delete it using delete().

js
this.addEventListener("activate", (event) => {
  const cachesToKeep = ["v2"];

  event.waitUntil(
    caches.keys().then((keyList) =>
      Promise.all(
        keyList.map((key) => {
          if (!cachesToKeep.includes(key)) {
            return caches.delete(key);
          }
          return undefined;
        }),
      ),
    ),
  );
});

Specifications

{{Specifications}}

Browser compatibility

{{Compat}}

See also

  • Using Service Workers
  • {{domxref("Cache")}}
  • {{domxref("Window.caches")}} and {{domxref("WorkerGlobalScope.caches")}}