IDBCursor: continue() メソッド

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since September 2021.

メモ: この機能はウェブワーカー内で利用可能です。

continue()IDBCursor インターフェイスのメソッドで、カーソルを現在の方向に次の位置、任意のキーパラメーターに一致するキーを持つアイテムまで進めます。キーを指定しない場合、カーソルはその方向に基づいて、すぐ隣の位置へ進みます。

構文

js
continue()
continue(key)

引数

key 省略可

このカーソルを進めるためのキーです。

返値

なし (undefined)。

例外

このメソッドは次の内いずれかの DOMException を発生させることがあります。

TransactionInactiveError DOMException

この IDBCursor のトランザクションがアクティブではありません。

DataError DOMException

key 引数が以下の状態のうちのいずれかである可能性があります。

  • key が妥当なキーではない
  • キーがこのカーソルの位置と同じかそれより小さく、カーソルの方向が next または nextunique である。
  • キーがこのカーソルの位置と同じかそれより大きく、カーソルの方向が prev または prevunique である。
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("全項目を表示しました。");
    }
  };
}

仕様書

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

ブラウザーの互換性

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
continue

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support

関連情報