LockManager: query() 方法
注意: 此功能在 Web Workers 中可用。
query()
方法是 LockManager
接口的方法,它返回一个 Promise
,该 Promise 解析为一个包含有关已持有锁和待处理锁信息的对象。
语法
js
query()
参数
无。
返回值
一个 Promise
,该 Promise 解析为一个包含 LockManager
状态快照的对象。该对象具有以下属性
LockInfo
对象可以具有以下属性
name
-
请求锁时传递给
LockManager.request()
的名称。 mode
-
请求锁时传递给
LockManager.request()
的访问模式。模式为"exclusive"
或"shared"
。 clientId
-
调用
LockManager.request()
的上下文的唯一标识。这与Client.id
的值相同。
异常
此方法可能返回一个 Promise,该 Promise 拒绝并带有以下类型之一的 DOMException
InvalidStateError
DOMException
-
如果环境文档未完全激活,则抛出。
SecurityError
DOMException
-
如果无法为当前环境获取锁管理器,则抛出。
示例
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 |
浏览器兼容性
BCD 表格仅在启用 JavaScript 的浏览器中加载。