L.X*_*L.X 2 asynchronous return synchronous node.js
您好,我想返回一个带有选项的简单布尔值: - true:用户存在于数据库中 - false:用户不存在于数据库中
这是我的非工作代码:
database.users.get("test-username", function (err, value) {
if (err) {
return err;
} else {
return value;
}
})
Run Code Online (Sandbox Code Playgroud)
返回总是undefined
我知道 NodeJS 旨在异步工作,但是异步函数不允许我返回某些内容。我卡住了,请帮忙!
另外,我LevelUP用作数据库系统。(如果我的问题没有解决方案,NodeJS 中是否还有其他允许同步的数据库系统?)
感谢社区!
当你 console.log 你的回报时,你会得到什么吗?例如:
function dbCall(){
database.users.get("test-username",function(err, value){
if(err){
return false;
}else{
console.log(value);
return value;
}
}
}
Run Code Online (Sandbox Code Playgroud)
如果你得到了一些有价值的东西,那么你看不到任何回报的原因是因为 api 调用是异步的。你必须做出承诺。
new Promise(resolve,reject){
let data = dbCall();
if(data == false)
reject(data);
else
resolve(data);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8940 次 |
| 最近记录: |