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
に変わります。
メモ: この機能はウェブワーカー内で利用可能です。
値
例
以下の例では、タイトルを指定してレコードを要求します。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
関連情報
- IndexedDB の使用
- トランザクションの開始:
IDBDatabase
- トランザクションの使用:
IDBTransaction
- キーの範囲の設定:
IDBKeyRange
- データの取得と変更:
IDBObjectStore
- カーソルの使用:
IDBCursor
- リファレンス例: To-do Notifications (動く例を見る)