javascript - 丢失全局变量值

标签 javascript node.js scope

这是一个游戏应用程序 我声明了变量 skipnpc,它被设计成一个指示器,表明非玩家 Angular 色已经使用了他的回合,并且与他的行为相关的任何 AI 代码都被跳过了一段时间。我遇到的问题是我以某种方式丢失了 skipnpc 的值,我指出我发出的 console.log 命令中的位置与可变范围有关,但我不知道如何修复它。

function npcMovement() {
    skipnpc = false;...
    sql4 = "SELECT id FROM game_moblist WHERE spawn_id =" + spawnid + " AND posx=" + parseInt(mobpathx[mobpathx.length - 1]) + " AND posy=" + parseInt(mobpathy[mobpathy.length - 1])
    connection.query(sql4, function (err, send, fields) {
        console.log("skipnpc pathing")
        io.sockets.emit('groupmoveresult', send, parseInt(mobpathx[mobpathx.length - 1]), parseInt(mobpathy[mobpathy.length - 1]))
        skipnpc = true
        console.log("skipnpc=true:" + skipnpc)
    });
    console.log("skipnpc = false:" + skipnpc)

以后我用

if (skipnpc==false){
  ...

在尝试任何进一步的 AI 代码之前

最佳答案

connection.query 是异步执行的。因此,您可以在完成之前到达这里的最后一行。

关于javascript - 丢失全局变量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11763414/

相关文章:

mysql - KnexJS 具有多个表和别名

javascript - ES6 类静态方法 vs 函数

Javascript 将函数作为对象传递会影响范围

javascript - Jquery 对话框不显示

JavaScript 正则表达式模板 : only match when string inside brackets is equal

javascript - 如何根据提交时的每个标签获取多选 optgroup 值?

javascript - js如何让一个变量值根据用户登录 Node 存在

scope - 从表中导入函数作为 Lua 中的局部函数

javascript - 如何避免 map 函数中的变量范围问题?

javascript - 如何强制 Chrome/Firefox/Opera 从本地主机执行跨域请求?