Javascript 从数据库查询返回数据
从数据库查询返回数据时遇到问题。我试图构建一个函数,当调用该函数时,它将从数据库返回特定的数据。这是我的密码:Javascript 从数据库查询返回数据,javascript,pouchdb,Javascript,Pouchdb,从数据库查询返回数据时遇到问题。我试图构建一个函数,当调用该函数时,它将从数据库返回特定的数据。这是我的密码: function getUserFullName() { var db = "userInfo"; var pouch = new PouchDB(db); pouch.get("token").then(function (result) { console.log(result-user
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);
});
}
因此,函数返回一个未定义的。有人知道我做错了什么吗?问题是,看起来您是在同步运行“getUserFullName”,但其中有一个异步函数“pagg.get”。异步函数的返回值需要在回调或承诺中返回 若“pocket.get”返回一个承诺,正如您在上面用“.”显示的那个样,那个么“您可以这样编写代码:
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);
});
然后像这样运行它:
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);
});
让我知道这是否有效,或者如果你有任何问题。谢谢
编辑:
看起来“邮袋。获取”确实是一个承诺。请参见他们的示例。因此,此代码将起作用。您是否只记录了结果并查看是否实际得到了结果?日志(“数据库结果”,结果);在返回之前。是的,我确定它正在返回数据。请发布结果对象。@axtscz您是如何运行此函数的?get是一个异步函数。如果同步运行getUserFullName,则不会得到结果。getUserFullName需要一个回调作为参数/result-user\u real\u name/result.user\u real\u name/It works,我遇到的问题是它仍然异步运行。依赖于其结果的代码在返回值之前正在运行。@依赖于此结果的axtscz代码应该放在“getUserFullName”的“.then”函数中,其中显示“console.log(fullUserName)。”这将是“getUserFullName”的结果。“getUserFullName”必须异步运行,因为它依赖于数据库查询的结果。好的,这很有意义。谢谢