LockManager: query() method
        
        
          
                Baseline
                
                  Widely available
                
                
              
        
        
        
          
                
              
                
              
                
              
        
        
      
      This feature is well established and works across many devices and browser versions. It’s been available across browsers since March 2022.
Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.
Note: This feature is available in Web Workers.
The query() method of the LockManager interface returns a Promise that resolves with an object containing information about held and pending locks.
Syntax
query()
Parameters
None.
Return value
A Promise that resolves with an object containing a snapshot of the LockManager state.
The object has the following properties:
- held
- 
An array of LockInfoobjects for held locks.
- pending
- 
An array of LockInfoobjects for pending lock requests.
The LockInfo object can have the following properties:
- name
- 
The name passed to LockManager.request()when the lock was requested.
- mode
- 
The access mode passed to LockManager.request()when the lock was requested. The mode is either"exclusive"or"shared".
- clientId
- 
The unique identity of the context where LockManager.request()is called. This is the same value asClient.id.
Exceptions
This method may return a promise rejected with a DOMException of one of the following types:
- InvalidStateError- DOMException
- 
Thrown if the environments document is not fully active. 
- SecurityError- DOMException
- 
Thrown if a lock manager cannot be obtained for the current environment. 
Examples
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}`);
}
Specifications
| Specification | 
|---|
| Web Locks API> # api-lock-manager-query> | 
Browser compatibility
Loading…