【问题标题】:PouchDB get on _id returns nor date neither errorPouchDB 获取 _id 返回或日期均无错误
【发布时间】:2017-06-15 13:28:08
【问题描述】:

在 PouchDB 数据库中,我有一些文档:

{
    _id: '765541',
    title: 'Mickey Mouse'
},
{
    _id: '78910',
    title: 'Donald Duck'
}

我正在尝试像这样运行get() 方法:

localCharacter(id: string){
    let db = this._db;
    let character: any;
    console.log('Look for : ' + id + ' in local db');

    return new Promise(resolve => {
      db.get(id).then((result) => {
        console.log('Character: ' + JSON.stringify(result));
        character= result.row; 
      }).catch((error) => {
        console.log('Some errors : ' + error);
        character = false;
      });
      console.log('Resolve : ' + character);
      resolve(character);
    })
  }

但控制台中不断弹出以下消息:

Resolve undefined

注意:我也尝试了以下

db.get(id.toString(), {include_docs: true}).then((result)

但同样的事情......

【问题讨论】:

    标签: ionic2 pouchdb


    【解决方案1】:

    根据 PouchDB get() API 及其示例响应,需要进行以下修改:

    db.get(id).then((result) => {
        /* "result.row" is wrong */
        //character= result.row;
        /* Just do this: */
        character= result;
    })
    

    【讨论】:

      【解决方案2】:

      正确的解决方法:

      localCharacter(id: string){
      let db = this._db;
      let character: any;
      console.log('Look for : ' + id + ' in local db');
      
      return new Promise(resolve => {
        db.get(id).then((result) => {
          console.log('Character: ' + JSON.stringify(result));
          character= result.row;
          resolve(character); 
        }).catch((error) => {
          console.log('Some errors : ' + error);
          character = false;
          resolve(character);
        });
      })
        }
      

      希望对你有帮助...

      【讨论】:

        【解决方案3】:

        您甚至可以简化您的代码:

        localCharacter(id: string) {
          return this._db.get(id).then(result => result.row).catch(err => false);
        }
        

        get 方法本身返回一个 Promise,因此无需将其包装到另一个 Promise 中。

        【讨论】:

          猜你喜欢
          • 2014-08-16
          • 2022-01-17
          • 1970-01-01
          • 1970-01-01
          • 2014-05-15
          • 1970-01-01
          • 1970-01-01
          • 2023-03-16
          • 2015-09-27
          相关资源
          最近更新 更多