mysql - 在 SQL 查询之外导出值(回调地狱)
问题描述
someVar
如果我的 SQL 查询找到结果,我的目标是设置为 1。问题是分配是本地的,当我尝试 a 时console.log(someVar)
,结果在块内是 1,但在块外是 0。有没有办法将价值导出到外面?
let someVar = 0;
con.query(`SOME SQL QUERY`, (error, rows) => {
if (error) throw error
if (rows.length > 0) {
someVar = 1;
//console.log(someVar) -> The result is 1
}
});
con.end();
//console.log(someVar) -> The result is 0
if (someVar === 0) {
// Some code
}
解决方案
感谢弗雷德里克,我修复了它。我终于像这样使用了promise
let promiseQuery = await new Promise((resolve, reject) => {
con.query(`SOME SQL QUERY`, (error, results, fields) => {
if (error) reject(error);
resolve(results || {});
})
})
const someVar = promiseQuery.length
if (someVart === 0) {
// Some code
} else {
// Some code
}
推荐阅读
- reactjs - 如何使 DataGrid 列从右侧 Material UI 开始
- sql - SQL 查找等 - 如何组合它们?
- php - 在 ElasticSearch 中将新元素推送/添加到嵌套对象数组中的最佳方法是什么?
- office-js - “抱歉,我们无法加载加载项”Office Word 加载项
- c++ - 同时写入多个文件
- reactjs - 无法获取内容
- excel - 升级到 O365 后如何发送邮件?
- r - brms add_criterion 如何管理大型 brmsfit 模型
- ruby - 403 Forbidden : 您无权访问此资源
- kotlin - 如何在 Gradle 构建脚本 (Kotlin) 中自定义子项目中的 WAR 插件