files/en-us/web/api/cache/matchall/index.md
{{APIRef("Service Workers API")}}{{SecureContext_Header}}{{AvailableInWorkers}}
The matchAll() method of the {{domxref("Cache")}}
interface returns a {{jsxref("Promise")}} that resolves to an array of all matching
responses in the {{domxref("Cache")}} object.
matchAll()
matchAll(request)
matchAll(request, options)
request {{optional_inline}}
Request object or a URL. If this
argument is omitted, you will get a copy of all responses in this cache.options {{optional_inline}}
ignoreSearch
true, the ?value=bar part of
https://example.com/?value=bar would be ignored when performing a match.
It defaults to false.ignoreMethod
true, prevents matching operations from validating the
{{domxref("Request")}} http method (normally only GET
and HEAD are allowed.) It defaults to false.ignoreVary
true tells the matching operation not to perform VARY
header matching — i.e., if the URL matches you will get a match regardless of the
{{domxref("Response")}} object having a VARY header or not. It
defaults to false.A {{jsxref("Promise")}} that resolves to an array of all matching responses in the {{domxref("Cache")}} object.
[!NOTE] {{domxref("Cache.match()")}} is basically identical to
Cache.matchAll(), except that rather than resolving with an array of all matching responses, it resolves with the first matching response only (that is,response[0]).
The following example retrieves all responses in the v1 cache matching the URL /, even including potential query parameters. By using { ignoreSearch: true }, using matchAll would retrieve / as well as /?value=bar.
It then logs the number of matching responses.
caches
.open("v1")
.then((cache) => cache.matchAll("/", { ignoreSearch: true }))
.then((responses) => {
console.log(`Found ${responses.length} matching responses`);
});
{{Specifications}}
{{Compat}}