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 |
浏览器兼容性
加载中…