IDBIndex: getAll() 方法

Baseline 已廣泛支援

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

getAll() 方法是 IDBIndex 介面的一部分,用於檢索索引中的所有物件。

訪問遊標的 value 屬性會產生效能開銷,因為物件是惰性建立的。為了使用像 getAll() 這樣的功能,瀏覽器需要一次性建立所有物件。如果您只對檢視每個鍵感興趣,那麼使用 遊標 會更有效。但是,如果您想獲取物件儲存中所有物件的陣列,則應該使用 getAll()

語法

js
getAll()
getAll(query)
getAll(query, count)

引數

query 可選

用於標識要檢索的記錄的鍵或 IDBKeyRange。如果此值為空或缺失,瀏覽器將使用無界鍵範圍。

count 可選

要返回的記錄數。如果此值超過了查詢中的記錄數,瀏覽器將僅檢索查詢到的記錄。如果它低於 0 或大於 2^32 - 1,則會丟擲 TypeError 異常。

返回值

一個 IDBRequest 物件,後續與此操作相關的事件會在此物件上觸發。

如果操作成功,請求的 result 屬性的值是所有匹配給定查詢的記錄值的 Array,最多可達 count 值(如果提供了 count)。

異常

此方法可能會引發以下型別的 DOMException

TransactionInactiveError DOMException

如果此 IDBIndex 的事務處於非活動狀態,則會丟擲此異常。

InvalidStateError DOMException

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

如果 count 引數不是包含在 02^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①

瀏覽器相容性

另見