2016-03-27 14 views
1

Ream-native ile Realm veritabanlarını kullanmakta yeniyim ve dokümantasyon/api genel olarak şeylerin yeterince açık görünmesini sağlar (btw için çok takdir edilir), api içinde hiçbir yerde değişiklik yapmaya çalıştığım zaman göremiyorum Realm'de bir db tablosu oluşturma, güncelleme, silme Başarıyı veya başarısızlığı izlemek için bir yöntem ekleyebilirim ve ayni yanıtı. Orası var mı ve sadece görmüyorum ya da bunun bir argüman olarak bir geri bildirimi eklemekten ayrı olarak ele almamın bir yolu var mı?Bir Bölge'nin başarıyla güncellendiğini nasıl anlarım?

cevap

3

Realm'deki hatalar, istisnaların atılmasına neden olur, böylece try/catch bloklarını kullanarak hataları işleyebilirsiniz. Realm.create ve Realm.delete yalnızca kodunuzda bir mantık hatası varsa atmalıdır. Db diske yazmaya çalışırken bir hata varsa Realm.write atabilir.

function writeWithError(realm, writeCallback, errorCallback) { 
    try { 
     realm.write(writeCallback); 
     errorCallback(undefined); 
    } 
    catch(e) { 
     errorCallback(e); 
    } 
} 

örnek hata geri arama çağırır: Bunun yerine her yazmak için bir deneme/yakalama bloğu yazmak zorunda kalmadan daha başarı/hata için bir geri arama geçebileceği şekilde

Kolayca kendi sarıcı yaratabilecek Başarı durumunda undefined ile veya bir hata atılmışsa hatayla. Bunu Realm nesnesine eklemek için Object.defineProperty kullanmayı deneyebilirsiniz, böylece üye işlevi olarak çağırabilirsiniz.

+1

Cevabınız için teşekkür ederiz. Ancak, yakalanan hiçbir hata/istisnanın gerçekten iyi bir başarı göstergesi olmadığını düşünüyorum. Ayrıca, ilk sorumu sorduğum şey "başarıyı ya da başarısızlığı izlemeyi ve ayni cevap vermeyi" başarmaktı. Ben de "ayni cevap ver" e biraz vurgu yapmak istiyorum. Geri arama işlevi veya geri arama işlevine benzer bir şey eklemenin herhangi bir yolu var mı? – flyingace

+1

Yanıtımı, hata geri bildirimlerini desteklemek için nasıl yazacağınız ile ilgili bir örnekle değiştirdim. – Ari

+1

Cevabınızı takdir ediyorum ve sadece bu konuya daha fazla değineceğim çünkü başka birtakım Realm sorularına cevap vermişsiniz gibi görünüyor ve muhtemelen Realm için çalıştığınızı düşünüyorum. Eğer yanılıyorsam, lütfen benim şaşkınlığımı affedin. Ek try/catch ifadesiyle karşılaştığım ana konu, "writeCallback" ifadesini realm.write için bir argüman olarak içermesidir, ancak realm.write zaten şu özelliğe göre bir işlev çağrısını beklemektedir: realm.write (() => { realm.create ('Araba', {make: 'Honda', model: 'Anlaşma', sürücü: 'awd'}); }); – flyingace

İlgili konular