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