IDBCursor: continue() 方法

Baseline 已廣泛支援

此特性已相當成熟,可在許多裝置和瀏覽器版本上使用。自 ⁨2015 年 7 月⁩以來,各瀏覽器均已提供此特性。

注意:此功能在 Web Workers 中可用。

continue() 方法是 IDBCursor 介面的一部分,它將遊標沿著其方向前進到下一個位置,指向鍵與可選的鍵引數匹配的條目。如果未指定鍵,則遊標將根據其方向前進到緊鄰的下一個位置。

語法

js
continue()
continue(key)

引數

key 可選

用於定位遊標的鍵。

返回值

無(undefined)。

異常

此方法可能會丟擲以下型別之一的DOMException

TransactionInactiveError DOMException

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

DataError DOMException

如果鍵引數滿足以下任一條件,則會丟擲異常

  • 鍵不是有效鍵。
  • 鍵小於或等於當前遊標位置,並且遊標的方向為 nextnextunique
  • 鍵大於或等於當前遊標位置,並且當前遊標的方向為 prevprevunique
InvalidStateError DOMException

如果游標當前正在迭代或已迭代到末尾,則丟擲此異常。

示例

在這個簡單的程式碼片段中,我們建立了一個事務,檢索了一個物件儲存,然後使用遊標遍歷物件儲存中的所有記錄。遊標不需要我們根據鍵來選擇資料;我們可以直接獲取所有資料。另外請注意,在迴圈的每一次迭代中,您都可以透過 cursor.value.foo 從遊標物件下的當前記錄中獲取資料。有關完整的可執行示例,請參閱我們的 IDBCursor 示例即時檢視示例)。

js
function displayData() {
  const transaction = db.transaction(["rushAlbumList"], "readonly");
  const objectStore = transaction.objectStore("rushAlbumList");

  objectStore.openCursor().onsuccess = (event) => {
    const cursor = event.target.result;
    if (cursor) {
      const listItem = document.createElement("li");
      listItem.textContent = `${cursor.value.albumTitle}, ${cursor.value.year}`;
      list.appendChild(listItem);

      cursor.continue();
    } else {
      console.log("Entries all displayed.");
    }
  };
}

規範

規範
Indexed Database API 3.0
# ref-for-dom-idbcursor-continue①

瀏覽器相容性

另見