files/en-us/web/api/cachestorage/delete/index.md
{{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.
delete(cacheName)
cacheName
A {{jsxref("Promise")}} that resolves to true if the {{domxref("Cache")}}
object is found and deleted, and false otherwise.
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().
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}}
{{Compat}}