无法从PouchDB获取值

4

在使用 PouchDB 插入数据后,我尝试使用 db.getAll() 获取所有文档和 db.get() 获取单个文档,但是返回的对象中都不包含我插入的值。

我做错了什么?

new Pouch('idb://test', function(err, db) {
  doc = {
    test : 'foo',
    value : 'bar'
  }

  db.post(doc, function(err, data) {
    if (err) console.error(err)
      else console.log(data)
  })

  db.allDocs(function(err, data) {
    if (err) console.error(err)
      else console.log(data)
  })
})
1个回答

9

由于IndexedDB API是异步的(因为它也是HTTP客户端),您在完成向PouchDB插入数据之前就已经运行了allDocs查询。

new Pouch('idb://test', function(err, db) {
  var doc = {
    test : 'foo',
    value : 'bar'
  };
  db.post(doc, function(err, data){
    if (err) {
      return console.error(err);
    }
    db.allDocs(function(err, data){
      if (err)    console.err(err)
      else console.log(data)
    });
  });
});

...应该可以正常工作。


明白了!是的,异步部分引起了问题。谢谢 :) - andrei

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接