IDBObjectStore: getAll() 方法
getAll() 方法是 IDBObjectStore 介面的一部分,它返回一個 IDBRequest 物件,其中包含物件儲存中所有與指定引數匹配的物件;如果未提供引數,則包含物件儲存中的所有物件。
如果成功找到一個值,則會建立該值的結構化克隆,並將其設定為請求物件的結果。
此方法會產生相同的結果,用於:
- 資料庫中不存在的記錄
- 值為 undefined 的記錄
為了區分這些情況,您可以呼叫
- 使用相同鍵的
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:
TransactionInactiveErrorDOMException-
如果此
IDBObjectStore的事務不活躍,則會丟擲此異常。 DataErrorDOMException-
如果提供的鍵或鍵範圍包含無效鍵或為 null,則丟擲此異常。
InvalidStateErrorDOMException-
如果
IDBObjectStore已被刪除或移除,則會丟擲此異常。 TypeError-
如果
count引數不在0和2^32 - 1(包含)之間,則丟擲此異常。
規範
| 規範 |
|---|
| Indexed Database API 3.0 # ref-for-dom-idbobjectstore-getall① |
瀏覽器相容性
載入中…
另見
- 使用 IndexedDB
- 開始事務:
IDBDatabase - 使用事務:
IDBTransaction - 設定鍵的範圍:
IDBKeyRange - 檢索和修改資料:
IDBObjectStore - 使用遊標:
IDBCursor - 參考示例:待辦事項通知(檢視即時示例)。