从 PouchDB 查询返回数据

Returning data from a PouchDB query

我在从 PouchDB 查询返回数据时遇到问题。我正在尝试构建一个函数,该函数在调用时 returns 来自 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);
            });
        }

所以发生的是函数 returns 未定义。有人知道我做错了什么吗?

问题是看起来您是 运行 宁 "getUserFullName" 同步,但您内部有一个异步函数,"pouch.get"。该异步函数的 return 值需要在回调或承诺中 returned。

如果 "pouch.get" return 是一个承诺,正如你在上面用“.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" 做出了 return 的承诺。请参阅他们的 docs here 中的示例。因此,此代码将起作用。