-1

我正在使用来自 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 变量?

4

1 回答 1

1

你永远不会在这里定义错误(或响应)

.on('change',function(){
    console.log(err||response);
})              ^
于 2014-05-09T09:08:45.733 回答