IDBObjectStore: getAllKeys() 方法
IDBObjectStore 介面的 getAllKeys() 方法返回一個 IDBRequest 物件,該物件會檢索物件儲存中所有匹配指定引數的記錄的鍵,如果未提供引數,則檢索物件儲存中的所有記錄的鍵。
如果成功找到一個值,則會建立一個該值的結構化克隆,並將其設定為請求物件的結果。
此方法對於以下情況會產生相同的結果:
- 資料庫中不存在的記錄
- 值為 undefined 的記錄
要區分這些情況,您需要使用相同的鍵呼叫 openCursor() 方法。該方法在記錄存在時提供一個遊標,在記錄不存在時則不提供遊標。
語法
js
getAllKeys()
getAllKeys(query)
getAllKeys(query, count)
引數
query可選-
值是
IDBKeyRange或解析為IDBKeyRange。 count可選-
指定要返回的值的數量(如果找到多個)。如果小於
0或大於2^32 - 1,則會丟擲TypeError異常。
返回值
一個 IDBRequest 物件,後續與此操作相關的事件會在此物件上觸發。
如果操作成功,請求的 result 屬性的值是一個 Array,其中包含所有與給定查詢匹配的記錄的鍵,最多可達到 count 的值(如果提供了 count)。
異常
此方法可能會丟擲以下型別之一的DOMException:
TransactionInactiveErrorDOMException-
如果此
IDBObjectStore的事務不活躍,則會丟擲此異常。 DataErrorDOMException-
如果提供的鍵或鍵範圍包含無效的鍵或為 null,則會丟擲此異常。
InvalidStateErrorDOMException-
如果
IDBObjectStore已被刪除或移除,則會丟擲此異常。
規範
| 規範 |
|---|
| Indexed Database API 3.0 # ref-for-dom-idbobjectstore-getallkeys① |
瀏覽器相容性
載入中…
另見
- 使用 IndexedDB
- 開始事務:
IDBDatabase - 使用事務:
IDBTransaction - 設定鍵的範圍:
IDBKeyRange - 檢索和修改資料:
IDBObjectStore - 使用遊標:
IDBCursor - 參考示例:待辦事項通知(檢視即時示例)。