IDBObjectStore: getAllKeys() 方法
IDBObjectStore
接口的 getAllKeys()
方法返回一个 IDBRequest
对象,用于检索与指定参数匹配的对象存储中所有对象的记录键,或者如果未给出参数,则检索存储中的所有对象。
如果成功找到值,则会创建其结构化克隆并将其设置为请求对象的 result。
此方法对以下情况产生相同的结果:
- 数据库中不存在的记录
- 具有未定义值的记录
要区分这些情况,需要使用相同的键调用 openCursor()
方法。如果记录存在,该方法提供游标;如果不存在,则不提供游标。
语法
js
getAllKeys()
getAllKeys(query)
getAllKeys(query, count)
参数
query
可选-
一个值,该值是或解析为
IDBKeyRange
。 count
可选-
指定如果找到多个值则返回的值的数量。如果它小于
0
或大于2^32 - 1
,则会抛出TypeError
异常。
返回值
一个 IDBRequest
对象,后续与此操作相关的事件将在其上触发。
如果操作成功,则请求的 result
属性的值为与给定查询匹配的所有记录的键的 Array
,最多为 count
的值(如果提供了 count
)。
异常
此方法可能会引发以下类型之一的 DOMException
:
TransactionInactiveError
DOMException
-
如果此
IDBObjectStore
的事务处于非活动状态,则抛出此异常。 DataError
DOMException
-
如果提供的键或键范围包含无效键或为 null,则抛出此异常。
InvalidStateError
DOMException
-
如果
IDBObjectStore
已被删除或移除,则抛出此异常。
规范
规范 |
---|
Indexed Database API 3.0 # ref-for-dom-idbobjectstore-getallkeys① |
浏览器兼容性
BCD 表仅在启用 JavaScript 的浏览器中加载。
另请参阅
- 使用 IndexedDB
- 启动事务:
IDBDatabase
- 使用事务:
IDBTransaction
- 设置键范围:
IDBKeyRange
- 检索和更改数据:
IDBObjectStore
- 使用游标:
IDBCursor
- 参考示例:待办事项通知 (查看示例)。