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);
}