IDBIndex: getAllKeys() 方法

Baseline 已广泛支持

此特性已相当成熟,可在许多设备和浏览器版本上使用。自 ⁨2020 年 1 月⁩ 起,所有主流浏览器均已支持。

IDBIndex 接口的 getAllKeys() 方法会异步检索索引中所有对象的**主键**,并将它们设置为请求对象的 result

语法

js
getAllKeys()
getAllKeys(query)
getAllKeys(query, count)

参数

query 可选

要检索的键或 IDBKeyRange。如果此值为空或缺失,浏览器将使用无边界键范围。

count 可选

要返回的记录数。如果此值超过查询中的记录数,浏览器将仅检索第一项。如果它低于 0 或大于 2^32 - 1,将抛出 TypeError 异常。

返回值

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

如果操作成功,请求的 result 属性的值将是一个 Array,其中包含所有匹配给定查询的记录的键,最多可达 count 值(如果提供了 count)。

异常

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

TransactionInactiveError DOMException

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

InvalidStateError DOMException

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

如果 count 参数不是介于 02^32 - 1 之间(包含),则会抛出 TypeError 异常。

示例

js
const myIndex = objectStore.index("index");
const getAllKeysRequest = myIndex.getAllKeys();
getAllKeysRequest.onsuccess = () => {
  console.log(getAllKeysRequest.result);
};

规范

规范
Indexed Database API 3.0
# ref-for-dom-idbindex-getallkeys①

浏览器兼容性

另见