gpt4 book ai didi

Javascript 全局变量未设置为所需的值

转载 作者:行者123 更新时间:2023-11-27 22:51:19 24 4
gpt4 key购买 nike

好吧,所以我认为这与范围界定有关,但我对 javascript 相当陌生。在数据库查询函数中,totalSum 有一个值,但当我询问函数外部的值时,它说它是 0。可以有人帮我吗?

 socket.on('sumDoughnut', function(data){

var totalSum = 0;


mysqlConnection.query('SELECT SUM(value) AS Total FROM doughnut', function(err, row, results){
if(err) {io.to(socket.id).emit('err_client', { code : 22 });console.log("MySQL error: " + err);if(err.code === 'PROTOCOL_CONNECTION_LOST'){handleDisconnect();}}
totalSum = row[0].Total;
console.log("here it is " + totalSum);
});

console.log(totalSum + " totalSum")
}

最佳答案

正如评论中提到的,范围是正确的。问题是对 console.log 的调用应该在回调中,而不是在外部。

如果不将其放入回调中,则 console.log 调用将在数据库调用后立即执行,而不等待数据库的响应。 DB返回值后就会触发回调。

这将解决它:

socket.on('sumDoughnut', function(data){
var totalSum = 0;

mysqlConnection.query('SELECT SUM(value) AS Total FROM doughnut', function(err, row, results){
if(err) {io.to(socket.id).emit('err_client', { code : 22 });console.log("MySQL error: " + err);if(err.code === 'PROTOCOL_CONNECTION_LOST'){handleDisconnect();}}

totalSum = row[0].Total;
console.log(totalSum + " totalSum")
});
}

关于Javascript 全局变量未设置为所需的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38033873/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com