从函数中获取价值

时间:2017-11-06 13:44:14

标签: node.js sqlite discord

我的代码有效但不是我想要的。 不和谐的输出为Your name is undefined。 我希望它是Your name is Boanak。我需要它是从表中获得的值。

我正在使用不和谐的机器人,用户必须注册才能使用其中的一些命令。提前谢谢!

getPlayerid = function(client, message, callback){
var member = message.member.user;
var db = new sqlite3.Database('Matches');
db.serialize(function() {
    db.all(`SELECT Name FROM Users WHERE Nameid =`+member.id, function(err, allRows){
        if(err != null){
            //console.log(err);
            callback(0);
        }
        callback(allRows);
        db.close();
    });
});
}


z = getPlayerid(client, message, function(data){
})
message.channel.send(`Your Name is ${z}`);

2 个答案:

答案 0 :(得分:0)

您的代码ID );您的名称是$ {z} undefined中的问题是在查询返回结果之前执行的,因此输出getPlayerid = function(client, message, callback){ var member = message.member.user; var db = new sqlite3.Database('Matches'); db.serialize(function() { db.all(`SELECT Name FROM Users WHERE Nameid =`+member.id, function(err, allRows){ if(err != null){ //console.log(err); callback(0); } callback(allRows); db.close(); }); }); } /* moved the statement in the callback function */ z = getPlayerid(client, message, function(data){ message.channel.send(`Your Name is ${data}`); });

minrun = length
remaining_bits = length.bit_length() - 6

if remaining_bits > 0:
    minrun = length >> remaining_bits
    mask = (1 << remaining_bits) - 1
    if (length & mask) > 0: minrun += 1

答案 1 :(得分:0)

您的函数是异步的,因此您的变量不能在函数之外使用。

我认为你必须做这样的事情:

configurations.all {
    resolutionStrategy  {
        failOnVersionConflict()
    }
}

希望它有所帮助。