forEach()to put()附件会引发冲突

时间:2017-06-23 23:14:45

标签: pouchdb

使用多个图像的输入(创建名为storedFiles的数组)。下面的代码将第一个图像加载到PouchDb中,然后加载到CouchDB中。但随后它会抛出409冲突错误。通常情况下,我认为这样做是为了不捕获第一个文件的转速。但是console.log("循环响应rev" + response.rev)似乎表明它正在抓住第二轮。

有关解决此问题的任何提示吗?

此处的Plunker:http://plnkr.co/edit/3kz4NYLjRlIu4M6c2hcg

    local.put(mileageDoc, function(err, response) {
      if (err) {
        return console.log(err);
      } else {
          storedFiles.forEach(function(storedFile){
                  console.log("response rev:" + response.rev);
            local.putAttachment(response.id, storedFile.name, response.rev, storedFile, storedFile.type, 
              function(err, response){
                if (err) {
                  console.log(err);
                } else {
                  console.log("Document created Successfully");
                  console.log("loop response id:" + response.id);
                  console.log("loop response rev:" + response.rev);
                  console.log("storedFiles length:" + storedFiles.length);
                }
              })
          })
      }
    });

谢谢!

1 个答案:

答案 0 :(得分:0)

PouchDB Upsert plugin处理409个冲突:

  

upsert() - 更新文档,如果文档不存在则插入新文档   (" UPSERT&#34)。如果遇到409次冲突,将继续重试(永远)。