Return 函数回调值
Return value from callback in function
你好,我想 return 一个带有选项的简单布尔值:
- true:用户存在于数据库中
- false: 数据库中不存在用户
这是我的非工作代码:
database.users.get("test-username", function (err, value) {
if (err) {
return err;
} else {
return value;
}
})
return 总是 undefined
我知道 NodeJS 设计用于异步工作,但异步函数不允许我 return 某些东西。我卡住了,请帮忙!
此外,我使用 LevelUP
作为数据库系统。
(如果我的问题没有解决,NodeJS中是否有其他允许同步的数据库系统?)
感谢社区!
当您 console.log 您的 return 时,您会得到任何回报吗?
例如:
function dbCall(){
database.users.get("test-username",function(err, value){
if(err){
return false;
}else{
console.log(value);
return value;
}
}
}
如果您获得了有价值的东西,那么您在 return 中看不到任何东西的原因是 api 调用是异步的。你必须做出承诺。
new Promise(resolve,reject){
let data = dbCall();
if(data == false)
reject(data);
else
resolve(data);
}
你好,我想 return 一个带有选项的简单布尔值: - true:用户存在于数据库中 - false: 数据库中不存在用户
这是我的非工作代码:
database.users.get("test-username", function (err, value) {
if (err) {
return err;
} else {
return value;
}
})
return 总是 undefined
我知道 NodeJS 设计用于异步工作,但异步函数不允许我 return 某些东西。我卡住了,请帮忙!
此外,我使用 LevelUP
作为数据库系统。
(如果我的问题没有解决,NodeJS中是否有其他允许同步的数据库系统?)
感谢社区!
当您 console.log 您的 return 时,您会得到任何回报吗? 例如:
function dbCall(){
database.users.get("test-username",function(err, value){
if(err){
return false;
}else{
console.log(value);
return value;
}
}
}
如果您获得了有价值的东西,那么您在 return 中看不到任何东西的原因是 api 调用是异步的。你必须做出承诺。
new Promise(resolve,reject){
let data = dbCall();
if(data == false)
reject(data);
else
resolve(data);
}