使用包含promise的函数设置变量的值?

时间:2017-03-12 04:11:44

标签: javascript mysql node.js

我现在已经在这方面摸不着头脑了,并且通过互联网进行大规模搜索已经证明是不成功的。希望有人在这里可以提供帮助。

我试图通过调用函数来设置变量的值,但该函数包含一个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,我真的希望有人能够帮助我解决这个问题:)

0 个答案:

没有答案