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 表格仅在浏览器中加载
另请参阅
- 使用 IndexedDB
- 启动事务:
IDBDatabase
- 使用事务:
IDBTransaction
- 设置键范围:
IDBKeyRange
- 检索和更改数据:
IDBObjectStore
- 使用游标:
IDBCursor
- 参考示例:待办事项通知 (查看示例).