IDBIndex:getAll() 方法

getAll()IDBIndex 接口的方法,用于检索索引中所有对象。

查看游标的 value 属性会带来性能成本,因为对象是延迟创建的。要使用 getAll() 等功能,浏览器必须一次性创建所有对象。例如,如果您只对查看每个键感兴趣,则使用 游标 更有效。但是,如果您尝试获取对象存储中所有对象的数组,则应使用 getAll()

语法

js
getAll()
getAll(query)
getAll(query, count)

参数

query 可选

一个键或一个 IDBKeyRange,用于识别要检索的记录。如果此值为 null 或缺失,则浏览器将使用无限制的键范围。

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 getAllRequest = myIndex.getAll();
getAllRequest.onsuccess = () => {
  console.log(getAllRequest.result);
};

规范

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

浏览器兼容性

BCD 表格仅在启用 JavaScript 的浏览器中加载。

另请参阅