Javascript 如何在nodejs中重写mysql连接函数之外的变量?

Javascript 如何在nodejs中重写mysql连接函数之外的变量?,javascript,mysql,node.js,Javascript,Mysql,Node.js,为什么第二个console.log仍然打印0? 如何从连接查询函数重写用户id var用户id=0//初始化 connection.query('Select id from users',函数(err,result){ 如果(错误)抛出错误; 用户\u id=结果[0]。id; console.log(user_id);//打印101 }); console.log(用户id)//打印0 }通过全局声明变量,您可以在任何函数或回调函数中更新该变量 在全局范围内,如果您在代码顶部定义该变量,那

为什么第二个console.log仍然打印0? 如何从连接查询函数重写用户id

var用户id=0//初始化
connection.query('Select id from users',函数(err,result){
如果(错误)抛出错误;
用户\u id=结果[0]。id;
console.log(user_id);//打印101
});
console.log(用户id)//打印0

}
通过全局声明变量,您可以在任何函数或回调函数中更新该变量


在全局范围内,如果您在代码顶部定义该变量,那么就很容易了。

这是如何回答这个问题的?他已经在查询回调范围外有一个变量。如果你看一下他发布的代码,末尾有一个大括号,表明变量声明不在全局范围内。全局范围变量如何解决这个问题,他在异步查询完成之前打印这个变量,这是一个异步问题,不是由全局范围内的变量解决的。是的,这可能是一个异步问题,但在95%以上的情况下,这个全局问题实际上也在异步模式下工作。这在以下情况下是有意义的:)谢谢将更新。