IDBObjectStore: getAll() 方法
**getAll()
** 方法是 IDBObjectStore
接口的方法,它返回一个 IDBRequest
对象,其中包含与指定参数匹配的对象存储中的所有对象,如果未提供参数,则包含存储中的所有对象。
如果成功找到值,则会创建它的结构化克隆并将其设置为请求对象的結果。
此方法对以下情况产生相同的结果
- 数据库中不存在的记录
- 具有未定义值的记录
要区分这些情况,可以调用
- 使用相同键的
openCursor()
方法。如果记录存在,该方法会提供游标;如果不存在,则不会提供游标。 - 使用相同键的
count()
方法,如果行存在,它将返回 1;如果不存在,则返回 0。
语法
js
getAll()
getAll(query)
getAll(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
已被删除或移除,则抛出该异常。 TypeError
-
如果
count
参数不在0
和2^32 - 1
(含)之间,则抛出该异常。
规范
规范 |
---|
Indexed Database API 3.0 # ref-for-dom-idbobjectstore-getall① |
浏览器兼容性
BCD 表仅在启用了 JavaScript 的浏览器中加载。
另请参阅
- 使用 IndexedDB
- 启动事务:
IDBDatabase
- 使用事务:
IDBTransaction
- 设置键范围:
IDBKeyRange
- 检索和更改数据:
IDBObjectStore
- 使用游标:
IDBCursor
- 参考示例:待办事项通知 (查看示例 )。