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.

La propriété readyState, rattachée à l'interface IDBRequest, est une propriété en lecture seule qui indique l'état de la requête.

Chaque requête démarre avec l'état pending (c'est-à-dire en attente). Cet état vaut ensuite done (fini) lorsque la requête est terminée (en cas de réussite de l'opération comme en cas d'échec).

Note : Cette fonctionnalité est disponible via les Web Workers.

Syntaxe

js
var currentReadyState = request.readyState;

Valeur

La valeur IDBRequestReadyState de la requête, qui peut être l'un de deux valeurs. pending lorsque la requête est en attente, done lorsque celle-ci est finie.

Exemples

Dans l'exemple qui suit, on effectue une requête sur un enregistrement avec un titre donné et on recupère l'enregistrement associé grâce au gestionnaire d'évènement onsuccess à partir du magasin d'objets IDBObjectStore. Ensuite, on met à jour une des propriétés de cet enregistrement et on replace cet objet mis à jour dans le magasin d'objets via une autre requête. La valeur de la propriété readyState pour la deuxième requête est affichée dans la console. Pour consulter un exemple fonctionnel complet, vous pouvez vous référer à notre appliction To-do Notifications (cf. également l'exemple live).

js
var title = "Walk dog";

// On ouvre une transaction
var objectStore = db
  .transaction(["toDoList"], "readwrite")
  .objectStore("toDoList");

// On récupère l'enregistrement avec le titre souhaité
var objectStoreTitleRequest = objectStore.get(title);

objectStoreTitleRequest.onsuccess = function () {
  // On récupère les données du résultat de la requête
  var data = objectStoreTitleRequest.result;

  // On met à jour la propriété notified de l'objet
  // avec la valeur "yes"
  data.notified = "yes";

  // Ensuite, on crée une autre requête pour insérer
  // l'enregistrement dans la base de données
  var updateTitleRequest = objectStore.put(data);

  // On affiche l'état de la requête dans la console
  console.log("La valeur de readyState est " + updateTitlerequest.readyState);

  // Lorsque cette deuxième requête est appliquée,
  // on exécute la fonction displayData() afin d'afficher
  // les données à jour
  updateTitleRequest.onsuccess = function () {
    displayData();
  };
};

Spécifications

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

Compatibilité des navigateurs

BCD tables only load in the browser

Voir aussi