LockManager:query() 方法
Baseline
Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2022年3月.
备注: 此特性在 Web Worker 中可用。
LockManager 接口的 query() 方法返回一个 Promise,该对象兑现一个包含持有中的锁和请求中的锁的信息的对象。
语法
js
query()
参数
无。
返回值
一个 Promise,兑现一个包含 LockManager 状态快照的对象。该对象具有以下属性:
LockInfo 对象可以具有以下属性:
name-
请求锁时传递给
LockManager.request()的名称。 mode-
请求锁时传递给
LockManager.request()的模式。该模式可以是"exclusive"或"shared"。 clientId-
调用
LockManager.request()的上下文的唯一标识。该值与Client.id相同。
异常
此方法可能会返回一个被以下类型的 DOMException 之一拒绝的 promise:
InvalidStateErrorDOMException-
如果当前环境的文档未完全激活,则抛出该异常。
SecurityErrorDOMException-
如果无法获取当前环境的锁管理器,则抛出该异常。
示例
js
const state = await navigator.locks.query();
for (const lock of state.held) {
console.log(`持有中的锁:名称 ${lock.name},模式 ${lock.mode}`);
}
for (const request of state.pending) {
console.log(`请求中的锁:名称 ${request.name},模式 ${request.mode}`);
}
规范
| Specification |
|---|
| Web Locks API> # api-lock-manager-query> |
浏览器兼容性
Loading…