从 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 中的示例。因此,此代码将起作用。
我在从 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 中的示例。因此,此代码将起作用。