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)
  })
})
4

1 に答える 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)
    });
  });
});

...動作するはずです。

于 2012-04-24T14:31:20.557 に答える