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 的浏览器中加载。

另请参阅