0

我想知道如何将 mysql 查询中的值传递给函数之外的变量:

mydb.js

const mysql = require('mysql');

const con = mysql.createConnection({
    host: process.env.HOST,
    user: process.env.USER,
    password: process.env.PASSWORD,
    database: process.env.DATABASE
});

con.connect(function(err) {
    if (err) throw err;      
});


async function loadDataInside(callback){
     
    con.query("SELECT content FROM whatsappauth Where id = 1", function (err, result, fields) {
        if (err) throw err;                                
        return callback(result[0].content);               
    });  

}

let ff;

loadDataInside(async function(res){
    ff = await res;
    
});

console.log('++',ff,'gg');

结果是:

++ undefined gg

为什么函数 'ff' 内部有正确的值,而外部却变成 'undefined' ?我应该如何解决这个问题?

4

1 回答 1

0

因为这就是它的执行方式

let ff;
console.log('++',ff,'gg'); So here you are getting undefined
loadDataInside(async function(res){
    ff = await res;
    
});

您将不得不在回调函数中编写代码,或者最好使用promise,请不要将promise和回调混在一起。

于 2021-06-27T16:13:35.957 回答