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: Diese Funktion ist in Web Workers verfügbar.

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

js
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 wie Client.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

js
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