首页 > 解决方案 > 在 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
}

标签: mysqlnode.jsdiscord.js

解决方案


感谢弗雷德里克,我修复了它。我终于像这样使用了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
}

推荐阅读