等待PouchDB从服务器获取同步版本

时间:2017-03-28 15:32:39

标签: couchdb pouchdb

我正在使用PouchDB在设备和服务器之间同步数据库。

在新设备上安装我的应用程序时,我需要从服务器下载用户的设置文档。如果我在以前在其他设备上运行应用程序并创建了用户设置时在新设备上执行以下操作:

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

_DB.get说该文件不存在。如果我等待足够长时间同步工作,服务器文档在本地加载,.get工作。除了进行长时间超时之外,我该如何处理?

1 个答案:

答案 0 :(得分: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
})