This is an experimental technology
Check the Browser compatibility table carefully before using this in production.

The query() method of the LockManager interface returns a Promise that resolves with an object that contains information about held and pending locks.


var promise<LockManagerSnapshot> = LockManager.query()



Return value

A Promise that resolves with a LockManagerSnapshot containing the following properties.

  • held: An array of Lock objects for held locks.
  • pending: An array of Lock objects for pending lock requests.


const state = await navigator.locks.query();
for (const lock of state.held) {
  console.log(`held lock: name ${lock.name}, mode ${lock.mode}`);
for (const request of state.pending) {
  console.log(`requested lock: name ${request.name}, mode ${request.mode}`);


Specification Status Comment
Web Locks API
The definition of 'query()' in that specification.
Draft Initial definition.

Browser compatibility

FeatureChromeEdgeFirefoxInternet ExplorerOperaSafari
Basic support69 ? ? ?56 ?
FeatureAndroid webviewChrome for AndroidEdge mobileFirefox for AndroidOpera AndroidiOS SafariSamsung Internet
Basic support6969 ? ?56 ? ?

Document Tags and Contributors

Contributors to this page: jpmedley
Last updated by: jpmedley,