我现在已经在这方面摸不着头脑了,并且通过互联网进行大规模搜索已经证明是不成功的。希望有人在这里可以提供帮助。
我试图通过调用函数来设置变量的值,但该函数包含一个Promise。并且只返回空字符串值。
这是我的代码(我将逐步介绍):
//make connection to mysql DB
var mysql = require('mysql');
var connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: '*********',
database: 'prioritySpeaker'
});
var table = 'speaker';
connection.connect(function(err, results) {
if (err) {
console.log("ERROR: " + err.message);
throw err;
};
console.log("connected.");
});
var priorityRole = role();
function role(){
var role = "";
connection.query(`SELECT priorityRole from ${table} WHERE uniqueID = "${guildID}"`,function(error,result,field){
if(result){
var row = result[0];
var pRole = row.priorityRole;
role = pRole;
}else{
console.log(error);
}
});
return role;
};
console.log(priorityRole);
所以发生的事情是:
我创建了一个名为priorityRole
的变量,该变量需要是result
connection.query
的结果值。
函数role()
创建一个role
的变量,然后将connection.query
运行到mysql服务器,如果它返回结果,则应将role
的值设置为if
语句中定义的结果,然后返回role
作为结果。所以在最后我需要priorityRole
变量与role
变量相同。
希望一切都有道理。我应该提到我正在使用NodeJS,我真的希望有人能够帮助我解决这个问题:)