2016-03-27 12 views
1

レスポンスネイティブでRealmデータベースを使用するのは初めてですが、ドキュメンテーション/ APIを使用すると、一般的には明らかに十分に分かりやすいように見えますが(これは非常に高く評価されています)、api内では、 (作成、更新、削除)レルム内のDBテーブルの成功または失敗を追跡するメソッドを追加し、で応答することができます。それはありますか?私はそれを見ないか、コールバックを引数として追加することから離れて処理することが期待される方法はありますか?レルムが正常に更新されたかどうかを確認するにはどうすればよいですか?

答えて

3

レルムでの失敗は例外をスローするため、try/catchブロックを使用してエラーを処理できます。 Realm.createRealm.deleteは、コードに論理エラーがある場合にだけスローする必要があります。 Realm.writeは、ディスクにディスクを書き込もうとしたときにエラーが発生するとスローする可能性があります。

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

の例では、エラーコールバックを呼び出します:あなたはむしろ、すべての書き込みのためにtry/catchブロックを記述することよりも、成功/エラーのためコールバックに渡すことができるように

あなたは簡単に独自のラッパーを作成することができます成功した場合はundefined、エラーが発生した場合はエラーとなります。また、Object.definePropertyを使用してRealmオブジェクトにこれをアタッチして、メンバー関数として呼び出すこともできます。

+1

ありがとうございます。しかし、私はエラー/例外が実際に成功の良い指標であるとは考えられません。また、私の最初の質問は、「成功か失敗かを追跡して親切に対応できる」ということでしたが、「現実的な対応」に重点を置いておきたいと思いました。コールバック関数やコールバック関数に似たものを含める方法があるかどうか知っていますか? – flyingace

+1

私はエラーコールバックをサポートするために書き込みをラップする方法の例を使って答えを変更しました。 – Ari

+1

私はあなたの応答に感謝し、これをさらに押すことになります。これは、あなたが他の多くのレルムの質問に答えているように見えるため、おそらくあなたがレルムに対して働いていると思っているからです。私が間違っているなら、私の押忍を許してください。 追加のtry/catch文の主な問題は、 "writeCallback"がrealm.writeの引数として含まれていますが、realm.writeはすでに仕様に従って関数呼び出しを期待していることです。 realm.write (「車」、「ホンダ」、モデル:「合意」、ドライブ:「awd」)); ; }); – flyingace

関連する問題