Ich bin neu in der Verwendung von Realm-Datenbanken mit react-native und während die Dokumentation/API im Allgemeinen die Dinge klar genug erscheinen lässt (was übrigens sehr geschätzt wird), sehe ich nirgendwo in der API, wenn ich versuche zu ändern (Erstellen, Aktualisieren, Löschen) Eine db-Tabelle in einem Realm Ich kann eine Methode hinzufügen, um Erfolg oder Misserfolg zu verfolgen und in Art antworten. Ist es da und ich sehe es einfach nicht oder gibt es einen Weg, von dem erwartet wird, dass ich damit umgehe, abgesehen davon, dass ich einen Callback als Argument anlege?Wie kann ich feststellen, ob ein Realm erfolgreich aktualisiert wurde?
Antwort
Fehler in Realm führen dazu, dass Exceptions geworfen werden, sodass Sie Fehler mit try/catch-Blöcken behandeln können. Realm.create
und Realm.delete
sollten nur ausgelöst werden, wenn Sie einen logischen Fehler in Ihrem Code haben. Realm.write
könnte ausgelöst werden, wenn beim Versuch, die Datenbank auf die Festplatte zu schreiben, ein Fehler auftritt.
Sie könnten leicht Ihren eigenen Wrapper erstellen, so dass Sie lieber in einem Rückruf für Erfolg/Fehler passieren könnten, als einen try/catch-Block für jeden Schreib zu schreiben:
function writeWithError(realm, writeCallback, errorCallback) {
try {
realm.write(writeCallback);
errorCallback(undefined);
}
catch(e) {
errorCallback(e);
}
}
Das Beispiel ruft den Fehler-Callback mit undefined
bei Erfolg oder mit dem Fehler, wenn ein Fehler ausgelöst wurde. Sie könnten auch versuchen, Object.defineProperty
zu verwenden, um dies an das Objekt Realm
anzuhängen, damit Sie es als eine Mitgliedsfunktion aufrufen können.
- 1. Wie kann ich feststellen, ob ein BPM-Prozess erfolgreich war?
- 2. Wie kann ich feststellen, ob ein Bild photoshopped wurde?
- 3. Wie kann ich feststellen, ob ein UILabel berührt wurde?
- 4. Wie kann ich feststellen, ob ein `NSManagedObject` gelöscht wurde?
- 5. Wie kann ich feststellen, ob ein Popup vollständig geladen wurde?
- 6. Wie kann ich feststellen, ob ein Prozess beendet wurde?
- 7. Wie kann ich feststellen, ob mysql gespeicherte Prozedur erfolgreich ausgeführt wurde
- 8. spymemcached: Wie kann ich feststellen, ob Memcached erfolgreich verbunden war?
- 9. Wie kann ich feststellen, ob ein Ereignis im Vollkalender aktualisiert wurde?
- 10. Kann ich feststellen, ob ein beliebiger CSS-Übergang gestartet wurde?
- 11. Wie kann ich feststellen, ob eine Datei umbenannt wurde?
- 12. Wie kann ich feststellen, ob ApplyUpdates Daten einfügt oder aktualisiert?
- 13. Wie überprüfe ich, ob ein Bild erfolgreich geladen wurde?
- 14. Wie kann ich feststellen, ob eine Entität gespeichert wurde?
- 15. Wie kann ich feststellen, ob eine jQuery-Dialogabfrage initialisiert wurde?
- 16. xsl: Wie kann ich feststellen, ob eine Variable deklariert wurde?
- 17. Wie kann ich feststellen, ob SP1 auf VS2008 installiert wurde?
- 18. Wie kann ich feststellen, ob die Einfügetaste gedrückt wurde?
- 19. Wie kann ich feststellen, ob ein Browser ein Popup blockiert?
- 20. Überprüfen, ob das Realm-Objekt gelöscht wurde
- 21. Wie kann ich feststellen, ob ein bestimmtes Paket bereits installiert wurde?
- 22. C# -, wie Sie überprüfen, ob ein Prozess erfolgreich gestartet wurde
- 23. Wie kann ich feststellen, ob ich ein Speicherleck habe?
- 24. Wie kann ich feststellen, ob ein Unterprozess angehalten wurde, weil sein Ausgabepuffer voll ist?
- 25. Wie finde ich heraus, ob 'svn up' erfolgreich beendet wurde?
- 26. Wie kann ich feststellen, wenn .Net System.Diagnostics.Process erfolgreich ausgeführt wurde oder fehlgeschlagen ist?
- 27. Wie kann ich feststellen, ob ein Webclient Werbung blockiert?
- 28. Wie kann ich feststellen, ob eine Funktion ein Diagramm generiert
- 29. Wie kann ich feststellen, ob ein Benutzer angemeldet ist?
- 30. Wie kann ich feststellen, ob ein Selektor null zurückgibt?
Vielen Dank für Ihre Antwort. Ich glaube jedoch nicht, dass ein Fehler/eine Ausnahme, die dabei erwischt wird, wirklich ein guter Indikator für den Erfolg ist. Was meine erste Frage war, war auch, dass ich Erfolg oder Misserfolg nachverfolgen und in gleicher Weise antworten konnte. Und ich wollte, dass ich etwas betonen möchte: "antworte in Form von Sachleistungen". Weißt du, ob es eine Möglichkeit gibt, eine Callback-Funktion oder eine Callback-Funktion zu verwenden? – flyingace
Ich änderte meine Antwort mit einem Beispiel, wie Sie schreiben können, um Fehlerrückrufe zu unterstützen. – Ari
Ich schätze deine Antwort und werde nur weiter darauf eingehen, weil du anscheinend eine Reihe anderer Realm-Fragen beantwortet hast und ich denke, dass du wahrscheinlich für Realm arbeitest. Wenn ich mich irre, bitte entschuldige meine Aufdringlichkeit. Das Hauptproblem, das ich mit der zusätzlichen try/catch-Anweisung habe, ist, dass es "writeCallback" als Argument für realm.write enthält, aber realm.write erwartet hier bereits einen Funktionsaufruf gemäß der Spezifikation: realm.write (() => { realm.create ('Auto', {Marke: 'Honda', Modell: 'Accord', Laufwerk: 'awd'}); }); – flyingace