LockManager: query()-Methode
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.
Sicherer Kontext: Diese Funktion ist nur in sicheren Kontexten (HTTPS) in einigen oder allen unterstützenden Browsern verfügbar.
Hinweis: Dieses Feature ist verfügbar in Web Workers.
Die query()
-Methode des LockManager
-Interfaces gibt ein Promise
zurück, das mit einem Objekt aufgelöst wird, das Informationen über gehaltene und ausstehende Sperren enthält.
Syntax
query()
Parameter
Keine.
Rückgabewert
Ein Promise
, das mit einem Objekt aufgelöst wird, das einen Schnappschuss des LockManager
-Zustands enthält.
Das Objekt hat die folgenden Eigenschaften:
held
-
Ein Array von
LockInfo
-Objekten für gehaltene Sperren. pending
-
Ein Array von
LockInfo
-Objekten für ausstehende Sperranfragen.
Das LockInfo
-Objekt kann die folgenden Eigenschaften haben:
name
-
Der Name, der an
LockManager.request()
übergeben wurde, als die Sperre angefordert wurde. mode
-
Der Zugriffsmodus, der an
LockManager.request()
übergeben wurde, als die Sperre angefordert wurde. Der Modus ist entweder"exclusive"
oder"shared"
. clientId
-
Die eindeutige Identität des Kontexts, in dem
LockManager.request()
aufgerufen wird. Dies ist derselbe Wert wieClient.id
.
Ausnahmen
Diese Methode kann ein Promise zurückgeben, das mit einem DOMException
folgenden Typs abgelehnt wird:
InvalidStateError
DOMException
-
Wird ausgelöst, wenn das Umgebungsdokument nicht vollständig aktiv ist.
SecurityError
DOMException
-
Wird ausgelöst, wenn ein Sperrmanager für die aktuelle Umgebung nicht erhalten werden kann.
Beispiele
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}`);
}
Spezifikationen
Specification |
---|
Web Locks API # api-lock-manager-query |
Browser-Kompatibilität
BCD tables only load in the browser