IDBRequest.readyState
Baseline
広く利用可能
この機能は広く実装されており、多くのバージョンの端末やブラウザーで動作します。2015年7月以降、すべてのブラウザーで利用可能です。
IDBRequest インターフェイスの読み取り専用プロパティ readyState は、要求の状態を返します。
すべての要求は、最初は 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();
};
};
仕様書
| 仕様書 |
|---|
| Indexed Database API 3.0> # ref-for-dom-idbrequest-readystate①> |
ブラウザーの互換性
関連情報
- IndexedDB の使用
- トランザクションの開始:
IDBDatabase - トランザクションの使用:
IDBTransaction - キーの範囲の設定:
IDBKeyRange - データの取得と変更:
IDBObjectStore - カーソルの使用:
IDBCursor - リファレンス例: To-do Notifications (動く例を見る)