gpt4 book ai didi

mysql - 如何从函数内部的查询获取结果

转载 作者:行者123 更新时间:2023-11-29 15:58:40 25 4
gpt4 key购买 nike

我正在尝试创建一个“AdminCheck”系统,该系统将检查用户是否是管理员,并根据从数据库收集的信息返回用户的管理员级别

我做了一些研究并意识到我的问题是查询异步,但我找不到更多

function isAdmin(varr){
let queryCheck = "SELECT AdminLVL FROM accounts WHERE username = ?"
pool.query(queryCheck, [varr], (err,results) => {
console.log(results[0].AdminLVL) // This gives me results
if(err){
console.log(err)
}
else {
return results[0].AdminLVL
}
})
}

就在我评论“这给了我结果”的地方,一切正常,但我希望能够在其他地方使用结果,让我们认为它是“300”。

最佳答案

问题在于调用 isAdmin 的函数是异步运行的,并且不等待结果。更改 isAdmin 以返回 promise https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise然后你可以在 isAdmin(varr).then(res => {//your code }) 中编写其余代码或者您可以使用异步等待。

编辑添加一些代码:沿着这些思路做一些事情(查看文档以使其完全按照您的需要工作)

  isAdmin(varr) {
return new Promise((resolve, reject) => {
let queryCheck = "SELECT AdminLVL FROM accounts WHERE username = ?"
pool.query(queryCheck, [varr], (err,results) => {
console.log(results[0].AdminLVL) // This gives me results
if(err){
reject(err);
}
else {
resolve(results[0].AdminLVL);
}
});
});

关于mysql - 如何从函数内部的查询获取结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56327998/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com