IDBTransaction.error
Baseline Widely available *
This feature is well established and works across many devices and browser versions. It’s been available across browsers since juillet 2015.
* Some parts of this feature may have varying levels of support.
La propriété IDBTransaction.error
de l'interface IDBTransaction
renvoie un type d'erreur lorsque la transaction échoue.
Note : Cette fonctionnalité est disponible via les Web Workers.
Syntaxe
var myError = transaction.error;
Valeur
L'erreur correspondante qui est un objet DOMError
. Il y a différents types d'erreurs possibles : l'erreur obtenue peut ainsi faire référence à l'objet de la requête qui l'a déclenchée ou à un échec de la transaction (par exemple QuotaExceededError
ou UnknownError
).
Cette propriété vaut null
si la transaction n'est pas terminée ou qu'elle est terminée avec succès ou qu'elle a été annulée avec la méthode abort
.
Note : Dans Chrome 48+ cette propriété renvoie une exception DOMException
parce que le type DOMError
a été retiré de la norme DOM.
Exemples
Dans le fragment de code suivant, on ouvre une connexion à la base de donnée. Sur cette connexion on démarre une transaction en lecture/écriture pour accéder au magasin d'objet "toDoList"
et y ajouter un enregistrement. Notez également les gestionnaires d'événements oncomplete
et onerror
de la transaction qui affichent sur la page le résultat de la transaction.
La propriété error
sert dans le bloc transaction.onerror = function(event) {...}
afin d'afficher le type d'erreur qui est survenue.
//Connexion à la base de données var DBOpenRequest = window.indexedDB.open("toDoList", 4); DBOpenRequest.onsuccess = function (event) { note.innerHTML += "<li>Connexion établie.</li>"; //Affecter la connexion à la variable db. db = DBOpenRequest.result; // Exécuter la fonction addData () pour emmagasiner // les données dans la base addData(); }; function addData() { // Créer un nouvel objet prêt à être emmagasiné newItem = [ { taskTitle: "Walk dog", hours: 19, minutes: 30, day: 24, month: "December", year: 2013, notified: "no", }, ]; // Ouvrir une transaction de lecture / écriture // pour permettre le traitement des données sur la connexion var transaction = db.transaction(["toDoList"], "readwrite"); // En cas de succès de l'ouverture de la transaction transaction.oncomplete = function (event) { note.innerHTML += "<li>Transaction terminée : modification de la base de données terminée.</li>"; }; // En cas d'échec de l'ouverture de la transaction transaction.onerror = function (event) { note.innerHTML += "<li>L'erreur: \"" + transaction.error + "\" s'est produite, échec de la transaction.</li>"; }; // Ouvrir l'accès au un magasin "toDoList" de la transaction var objectStore = transaction.objectStore("toDoList"); // Ajouter un enregistrement var objectStoreRequest = objectStore.add(newItem[0]); objectStoreRequest.onsuccess = function (event) { // Signaler l'ajout de l'enregistrement note.innerHTML += "<li>Enregistrement ajouté.</li>"; }; }
Note : Pour un exemple fonctionnel complet, voir notre application To-do (exemple).
Spécifications
Specification |
---|
Indexed Database API 3.0> # ref-for-dom-idbtransaction-error①> |
Compatibilité des navigateurs
Loading…
Voir aussi
- Utiliser IndexedDB
- Initier une connexion :
IDBDatabase
- Utiliser les transactions :
IDBTransaction
- Définir un intervalle de clés :
IDBKeyRange
- Récupérer et modifier les données :
IDBObjectStore
- Utiliser les curseurs
IDBCursor
- Exemple de référence : To-do Notifications (exemple live).