2017-03-28 12 views
0

私はPouchDBを使用して、デバイスとサーバの間でデータベースを同期しています。PouchDBを待ってサーバから同期されたバージョンを取得する

新しいデバイスにアプリケーションをインストールするときに、サーバーからユーザーの設定ドキュメントをプルダウンする必要があります。私は、新しいデバイス上で次のような場合のAppは、以前に別のデバイス上で実行され、ユーザー設定を作成したとき:

var _DB = new PouchDB(localDBName); 
_DB.sync(realRemoteDB, options); 
_DB.get(userSettingsDocumentName); 

_DB.getは、文書が存在しないと言います。私は十分に待っていると、同期が動作し、サーバーのドキュメントがローカルに読み込まれ、.getが動作します。長いタイムアウトを入れる以外の方法は?

答えて

2

ほとんどの場合、PouchDBの機能は非同期です。つまり、ドキュメントをフェッチすると、同期がまだ完了していない可能性があります。

var _DB = new PouchDB(localDBName); 
_DB.sync(realRemoteDB, options).on('complete',function(info){ 
    //Sync is complete 
    return _DB.get(userSettingsDocumentName); 
}).then(function(doc){ 
    //Here you will have the document 

}).catch(function(err){ 
    //An error occured 
}) 
+0

おかげアレクシス:ここ

は、あなたが約束でそれを書くべき方法です。私は2,3日後にそれを試してみる。 –

+0

'完了'は決して実行されません。私が '変更'を加えると '実行'は実行されますが、 '完了'は実行されません。しかし、ローカルデータベースはリモートデータベースと同期します。 –

+0

オプションは何ですか? –

関連する問題