files/en-us/web/api/backgroundfetchregistration/match/index.md
{{APIRef("Background Fetch API")}}{{SeeCompatTable}}{{AvailableInWorkers}}
The match() method of the {{domxref("BackgroundFetchRegistration")}} interface returns the first matching {{domxref("BackgroundFetchRecord")}}.
match(request)
match(request, options)
request
options {{optional_inline}}
match operation. The available
options are:
ignoreSearch {{optional_inline}}
true the ?value=bar part of
https://example.com/?value=bar would be ignored when performing a match.
It defaults to false.ignoreMethod {{optional_inline}}
true,
prevents matching operations from validating the {{domxref("Request")}} http method.
If false (the default) only GET and HEAD are allowed.ignoreVary {{optional_inline}}
true indicates that the {{HTTPHeader("Vary")}} header should be ignored.
It defaults to false.A {{jsxref("Promise")}} that resolves with the first {{domxref("BackgroundFetchRecord")}} that matches the request or {{jsxref("undefined")}} if no match is found.
[!NOTE]
BackgroundFetchRegistration.match()is basically identical to {{domxref("BackgroundFetchRegistration.matchAll()")}}, except that rather than resolving with an array of all matching records, it resolves with the first matching record only.
InvalidStateError {{domxref("DOMException")}}
match() when there are no fetches in progress. This state will be reflected by {{domxref("BackgroundFetchRegistration.recordsAvailable")}} being set to false.In this example we look for a record with the URL "/ep-5.mp3". If a {{domxref("BackgroundFetchRecord")}} is found then we can return some information about it.
bgFetch.match("/ep-5.mp3").then(async (record) => {
if (!record) {
console.log("No record found");
return;
}
console.log(`Here's the request`, record.request);
const response = await record.responseReady;
console.log(`And here's the response`, response);
});
{{Specifications}}
{{Compat}}