LockManager: phương thức query()

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.

Secure context: This feature is available only in secure contexts (HTTPS), in some or all supporting browsers.

Note: This feature is available in Web Workers.

Phương thức query() của giao diện LockManager trả về Promise được giải quyết với đối tượng chứa thông tin về các khóa đang giữ và đang chờ.

Cú pháp

js
query()

Tham số

Không có.

Giá trị trả về

Một Promise được giải quyết với đối tượng chứa ảnh chụp trạng thái LockManager. Đối tượng có các thuộc tính sau:

held

Mảng các đối tượng LockInfo cho các khóa đang giữ.

pending

Mảng các đối tượng LockInfo cho các yêu cầu khóa đang chờ.

Đối tượng LockInfo có thể có các thuộc tính sau:

name

Tên được truyền vào LockManager.request() khi khóa được yêu cầu.

mode

Chế độ truy cập được truyền vào LockManager.request() khi khóa được yêu cầu. Chế độ là "exclusive" hoặc "shared".

clientId

Định danh duy nhất của ngữ cảnh nơi LockManager.request() được gọi. Đây là cùng giá trị với Client.id.

Ngoại lệ

Phương thức này có thể trả về một promise bị từ chối với DOMException của một trong các loại sau:

InvalidStateError DOMException

Được ném nếu tài liệu của môi trường không hoàn toàn hoạt động.

SecurityError DOMException

Được ném nếu không thể lấy trình quản lý khóa cho môi trường hiện tại.

Ví dụ

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}`);
}

Thông số kỹ thuật

Specification
Web Locks API
# api-lock-manager-query

Tương thích trình duyệt