我正在使用来自 CouchDB (couchappy.com) 的远程数据更新我的 PouchDB。每次我从一个空的 PouchDB 执行此操作时,都会收到以下错误:
ReferenceError {result: Object, stack: (...), message: "writeCheckpoint completed with error"} 消息:“writeCheckpoint 完成但出现错误” 结果:对象 doc_write_failures:0 文档阅读:1 docs_written: 1 结束时间:2014 年 5 月 9 日星期五 02:21:33 GMT+0300 (EEST) 错误:数组 [0] 最后序列:36 好的:假的 开始时间:2014 年 5 月 9 日星期五 02:21:32 GMT+0300 (EEST) 状态:“中止” __proto__: 对象 堆: (...) 获取堆栈:函数(){[本机代码]} 设置堆栈:函数(){[本机代码]} __proto__: 错误
下面是我的代码:
db.replicate.from('https://(server).couchappy.com/database',{ 活:假, doc_ids:flk_content.get('selectedLanguage') }) .on('改变',函数(){ 控制台日志(错误||响应); }) .on('完成',function(){ db.compact(); }) .on('error',function(e){console.log(e);});});
我从 .on('error') 回调中收到错误消息。
一旦我收到错误,如果我再次重新加载并再次同步数据,则没有错误。
那个错误是什么意思?如何预防?有没有进一步的后果?谢谢各位!
编辑:
我从 PouchDB 电话中获得的更多详细信息:
"ReferenceError: err 未定义 在复制。(http://mydomain/myscript:851:508) 在 Replication.EventEmitter.emit (http://mydomain/pouchdb-2.2.0.js:6607:17) 在 http://mydomain/pouchdb-2.2.0.js:5293:19"
myscript 中的第 851:508 行转到我前面提到的复制调用。我简要检查了 pouchDB js,似乎 err 是一个用于抛出错误的内部变量
功能完成批次(){ 写作检查点=真; 返回 checkpointer.writeCheckpoint( currentBatch.seq ).then(函数 (res) { 写作检查点=假; 如果(returnValue.cancelled){ 完成复制(); 抛出新的错误('取消'); } 结果.last_seq = last_seq = currentBatch.seq; result.docs_written += currentBatch.docs.length; returnValue.emit('change', utils.clone(result)); 当前批次=未定义; 获取更改(); })["catch"](函数(错误){ 写作检查点=假; abortReplication('writeCheckpoint 完成但有错误', err); 抛出错误; }); }
所以似乎虽然抛出了错误,但没有设置 err 变量?