IDBObjectStore: getAllKeys() 方法

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2020 年 1 月⁩ 起,所有主流瀏覽器均已支援。

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

TransactionInactiveError DOMException

如果此 IDBObjectStore 的事務不活躍,則會丟擲此異常。

DataError DOMException

如果提供的鍵或鍵範圍包含無效的鍵或為 null,則會丟擲此異常。

InvalidStateError DOMException

如果 IDBObjectStore 已被刪除或移除,則會丟擲此異常。

規範

規範
Indexed Database API 3.0
# ref-for-dom-idbobjectstore-getallkeys①

瀏覽器相容性

另見