我正在尝试在Ionic 3应用程序中执行过滤的复制,但是在阅读了一些文档后,它卡在了待处理文档中,并且还没有触发complete事件。当我在移动设备上构建并运行该应用程序时,就会发生这种情况。
运行ionic serve
的应用正常运行。
应用程序:
离子3 具有cordova-sqlite插件(2.0.3)的PouchDB(6.4.3) 沙发版本:2.1.2
配置
PouchDB.plugin(require('pouchdb-find').default);
PouchDB.plugin(cordovaSqlitePlugin);
this.db = new PouchDB(gstin, {
adapter: 'cordova-sqlite', location: 'default'
});
复制选项:
{
filter: 'Generic/xxxxx',
query_params: {
id: xxx,
deviceId: xxxx
},
batch_size: 10
}
最后更改控制台,
{
ok: true,
start_time: "2018-09-07T09:18:16.204Z",
docs_read: 136,
docs_written: 136,
doc_write_failures: 0, …}
doc_write_failures:0
docs:(11) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]
docs_read:136
docs_written:136
errors:Array(0)
length:0
__proto__:Array(0)
last_seq:"xxxxxx"
ok:true
pending:402
start_time:"2018-09-07T09:18:16.204Z"
__proto__:Object
答案 0 :(得分:0)
在学习如何一起使用PouchDb / CouchDb的同时,可能会使同步指针处于怪异状态。
我可以建议您尝试使用数据库的全新实例吗?
我发现有必要创建CURL脚本以完全重建我的测试数据库,然后再花费大量精力来追查为什么某事不起作用。
如果您要显示正在使用的过滤器以及复制命令的完整代码,而不仅仅是选项,我相信您会在这里得到更多帮助。
更新:我也强烈建议您创建一个简单的CouchDb服务器(或免费的Cloudant数据库),并使用默认服务(而不是cordova-sqlite)创建一个非常简单的浏览器应用程序,并测试您的关于复制如何工作的假设。