我在从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);
});
}
所以会发生的是该函数返回一个未定义的。有没有人知道我做错了什么?
答案 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中的示例。因此,此代码将起作用。