IDBRequest.readyState

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

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

注: この機能は Web Worker 内で利用可能です。

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

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

関連情報