IDBObjectStore: getKey() 方法

注意:此功能在 Web Workers 中可用。

getKey() 方法是 IDBObjectStore 接口的方法,它返回一个 IDBRequest 对象,并在另一个线程中返回由指定查询选择的键。此方法用于从对象存储中检索特定记录。

如果成功找到键,则会创建它的结构化克隆,并将其设置为请求对象的 result 属性的值。

语法

js
getKey(key)

参数

key

标识要检索的记录的键或键范围。

返回值

一个 IDBRequest 对象,后续与该操作相关的事件将在其上触发。

如果操作成功,请求的 result 属性的值是与给定键或键范围匹配的第一个记录的键。

异常

此方法可能会引发以下类型之一的 DOMException

InvalidStateError DOMException

如果 IDBObjectStore 已被删除或移除,则抛出此异常。

TransactionInactiveError DOMException

如果此 IDBObjectStore 的事务处于非活动状态,则抛出此异常。

DataError DOMException

如果提供的键或键范围包含无效的键,则抛出此异常。

示例

js
let openRequest = indexedDB.open("telemetry");
openRequest.onsuccess = (event) => {
  let db = event.target.result;
  let store = db.transaction("netlogs").objectStore("netlogs");

  let today = new Date();
  let yesterday = new Date(today);
  yesterday.setDate(today.getDate() - 1);
  let request = store.getKey(IDBKeyRange(yesterday, today));
  request.onsuccess = (event) => {
    let when = event.target.result;
    alert(`The 1st activity in last 24 hours was occurred at ${when}`);
  };
};

规范

规范
Indexed Database API 3.0
# ref-for-dom-idbobjectstore-getkey①

浏览器兼容性

BCD 表格仅在浏览器中加载

另请参阅