IDBRequest: error-Eigenschaft
Hinweis: Dieses Feature ist verfügbar in Web Workers.
Die error
schreibgeschützte Eigenschaft des
IDBRequest
-Interfaces gibt den Fehler im Falle einer fehlgeschlagenen
Anfrage zurück.
Wert
Ein DOMException
oder null
, wenn kein Fehler vorliegt. Folgende Fehlernamen werden im Ausnahmeobjekt zurückgegeben:
AbortError
-
Wenn Sie die Transaktion abbrechen, erhalten alle noch laufenden Anfragen diesen Fehler.
ConstraintError
-
Wenn Sie Daten einfügen, die nicht mit einer Einschränkung übereinstimmen. Es ist ein Ausnahmetyp für das Erstellen von Stores und Indizes. Dieser Fehler tritt zum Beispiel auf, wenn Sie versuchen, einen neuen Schlüssel hinzuzufügen, der bereits im Datensatz existiert.
QuotaExceededError
-
Wenn Ihnen der Speicherplatz ausgeht und der Benutzer Ihnen nicht mehr Platz gewährt.
UnknownError
-
Wenn die Operation aus Gründen scheitert, die nicht direkt mit der Datenbank zusammenhängen. Ein Beispiel für ein Scheitern sind Festplatten-IO-Fehler.
VersionError
-
Wenn Sie versuchen, eine Datenbank mit einer niedrigeren Version zu öffnen, als sie bereits hat.
Zusätzlich zu den an das IDBRequest
-Objekt gesendeten Fehlercodes
können asynchrone Operationen auch Ausnahmen auslösen. Die Liste beschreibt Probleme, die
beim Ausführen der Anfrage auftreten könnten, Sie können jedoch auch auf andere
Probleme stoßen, wenn die Anfrage gestellt wird. Wenn z. B. auf das Ergebnis zugegriffen wird,
während die Anfrage nicht abgeschlossen ist, wird die Ausnahme InvalidStateError
ausgelöst.
Beispiele
Das folgende Beispiel fordert einen bestimmten Datensatz-Titel an, onsuccess
erhält den
zugehörigen Datensatz aus dem IDBObjectStore
(verfügbar als
objectStoreTitleRequest.result
), aktualisiert eine Eigenschaft des Datensatzes und legt den
aktualisierten Datensatz wieder in den Object Store ab. Am Ende ist auch eine
onerror
-Funktion enthalten, die den Fehler meldet, wenn die Anfrage fehlschlägt.
Für ein vollständiges funktionierendes Beispiel, siehe unsere To-do Notifications App (Beispiel live ansehen).
const title = "Walk dog";
// Open up a transaction as usual
const objectStore = db
.transaction(["toDoList"], "readwrite")
.objectStore("toDoList");
// Get the to-do list with the specified title
const objectStoreTitleRequest = objectStore.get(title);
objectStoreTitleRequest.onsuccess = () => {
// Grab the data object returned as the result
const data = objectStoreTitleRequest.result;
// Update the notified value in the object to "yes"
data.notified = "yes";
// Create another request that inserts the item
// back into the database
const updateTitleRequest = objectStore.put(data);
// When this new request succeeds, run the displayData()
// function again to update the display
updateTitleRequest.onsuccess = () => {
displayData();
};
};
objectStoreTitleRequest.onerror = () => {
// If an error occurs with the request, log what it is
console.log(
`There has been an error with retrieving your data: ${objectStoreTitleRequest.error}`,
);
};
Spezifikationen
Specification |
---|
Indexed Database API 3.0 # ref-for-dom-idbrequest-error① |
Browser-Kompatibilität
BCD tables only load in the browser
Siehe auch
- Verwendung von IndexedDB
- Transaktionen starten:
IDBDatabase
- Transaktionen verwenden:
IDBTransaction
- Einen Bereich von Schlüsseln festlegen:
IDBKeyRange
- Abrufen und Ändern Ihrer Daten:
IDBObjectStore
- Cursors verwenden:
IDBCursor
- Referenzbeispiel: To-do Notifications (Beispiel live ansehen).