从PouchDB查询返回数据

时间:2015-09-04 14:03:40

标签: javascript pouchdb

我在从PouchDB查询返回数据时遇到问题。我尝试构建一个函数,在调用时,从PouchDB返回特定数据。这是我的代码:

function getUserFullName() {
            var db = "userInfo";
            var pouch = new PouchDB(db);
            pouch.get("token").then(function (result) {
            console.log(result-user_real_name);
                return result.user_real_name;
            }).catch(function (error) {
                console.log(error);
            });
        }

所以会发生的是该函数返回一个未定义的。有没有人知道我做错了什么?

1 个答案:

答案 0 :(得分:1)

问题是它看起来像你正在同步运行“getUserFullName”,但你有一个异步函数,“pouch.get”。需要在回调或promise中返回该异步函数的返回值。

如果“pouch.get”返回一个承诺,正如您在上面显示“.then”那样,您可以像这样编写代码:

function getUserFullName() {
  var db = "userInfo";
  var pouch = new PouchDB(db);

  return pouch.get("token")
}

然后像这样运行:

getUserFullName()
  .then(function(fullUserName){
    console.log(fullUserName);
  })
  .catch(function(err){
    console.log(err);
  });

如果有效,或者您有任何疑问,请告诉我。谢谢!

修改 看起来像“pouch.get”确实会返回一个承诺。请参阅docs here中的示例。因此,此代码将起作用。