javascript - 试图制作返回 mysql 'SELECT * FROM' 结果的函数,最终返回 undefined
问题描述
我正在尝试创建一个从 SQL 'SELECT * FROM' 返回统计数据数组的函数,当我不使用函数返回它时,它可以工作,但我不能在 'function(错误,结果)'
con.query(`SELECT * FROM MemberPeniz WHERE memberId = '${memberID}'`, function(err, results) {
if(err) {
throw err;
}
console.log(results)
})
我试过这个:
function checkTimeoutMEMBERid(memberID) {
con.query(`SELECT * FROM MemberPeniz WHERE memberId = '${memberID}'`, function(err, results) {
if(err) {
throw err;
}
return results
})
}
const result = checkTimeoutMEMBERid(message.author.id);
console.log(result)
但正如我所说,无论我传入什么 id,它都会返回 undefined
解决方案
这是因为,您将结果返回给回调,而回调将不会返回给调用者函数。您可以将功能更新为,
function checkTimeoutMEMBERid(memberId) {
return new Promise((resolve, reject) =>{
con.query(`SELECT * FROM MemberPeniz WHERE memberId = ?`,[memberId], (err, results) => {
if(err) {
return reject(err)
}
resolve(results)
})
})
}
checkTimeoutMEMBERid(message.author.id)
.then(result =>
{
console.log(result)
})
推荐阅读
- functional-programming - Scheme中流的空间复杂度
- ffmpeg - 使用 ffmpeg 组合视频片段和流
- javascript - Web Audio API - 计算滤波器的累积增益
- r - 需要帮助创建一个函数来删除一波数据,如果它是前一波数据的重复,以进行回顾性测量
- javascript - 为什么运行此代码时没有出现 h1?
- javascript - 如何修改下面的脚本使第九个单词变为粗体?
- javascript - 使用箭头函数和 addEventListener 更改元素的字体大小和文本颜色
- r - 如何使用 R 中的过滤器在表格中显示信息?
- java - 可选的编译时依赖项如何工作?
- flutter - 开始调试与重新启动已经运行的应用程序时不同的应用程序版本