IDBRequest.readyState

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.

IDBRequest インターフェイスの読み取り専用プロパティ readyState は、要求の状態を返します。

すべての要求は、最初は pending 状態です。要求が正常に完了するか、エラーが発生すると、状態が done に変わります。

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

以下の文字列のいずれかです。

pending

要求がまだ実行中のとき返ります。

done

要求が完了済のとき返ります。

以下の例では、タイトルを指定してレコードを要求します。onsuccess で、IDBObjectStore から (objectStoreTitleRequest.result として参照できるようになった) 対応するレコードを取得し、レコードのプロパティ 1 個を更新し、更新したレコードを別の要求でオブジェクトストアに書き戻します。2 番目の要求の readyState を開発者コンソールに記録します。動く例全体は、To-do Notifications アプリケーションを参照してください。(動く例を見る)

js
const title = "Walk dog";

// 通常通りトランザクションを開始します
const objectStore = db
  .transaction(["toDoList"], "readwrite")
  .objectStore("toDoList");

// 指定の title をタイトルとして持つ TO-DO リストのオブジェクトを取得します
const objectStoreTitleRequest = objectStore.get(title);

objectStoreTitleRequest.onsuccess = () => {
  // result として返されたデータオブジェクトを取得します
  const data = objectStoreTitleRequest.result;

  // オブジェクトの notified の値を "yes" に更新します
  data.notified = "yes";

  // アイテムをデータベースに書き戻す別の要求を生成します
  const updateTitleRequest = objectStore.put(data);

  // 要求の readyState を記録します
  console.log(`この要求の readyState は ${updateTitleRequest.readyState} です`);

  // 新しい要求が成功したら、また displayData() 関数を
  // 実行し、表示を更新します
  updateTitleRequest.onsuccess = () => {
    displayData();
  };
};

仕様書

Specification
Indexed Database API 3.0
# ref-for-dom-idbrequest-readystate①

ブラウザーの互換性

BCD tables only load in the browser

関連情報