LockManager:query() 方法
注意:此功能在 Web Workers 中可用。
LockManager 介面的 query() 方法返回一個 Promise,該 Promise 解析為一個包含有關已持有和待定鎖資訊的物件。
語法
js
query()
引數
無。
返回值
一個 Promise,解析為一個包含 LockManager 狀態快照的物件。該物件具有以下屬性:
LockInfo 物件可以具有以下屬性:
name-
請求鎖時傳遞給
LockManager.request()的名稱。 模式-
請求鎖時傳遞給
LockManager.request()的訪問模式。模式為"exclusive"(獨佔)或"shared"(共享)。 clientId-
呼叫
LockManager.request()的上下文的唯一識別符號。這與Client.id的值相同。
異常
此方法可能會返回一個被拒絕的 Promise,並帶有以下型別的 DOMException:
InvalidStateErrorDOMException-
如果環境的文件尚未完全啟用,則丟擲此異常。
SecurityErrorDOMException-
如果無法獲得當前環境的鎖管理器,則丟擲此異常。
示例
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}`);
}
規範
| 規範 |
|---|
| Web Locks API # api-lock-manager-query |
瀏覽器相容性
載入中…