首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在发出后更改IF语句中的值是完成的,而不是在发出之前。

在发出后更改IF语句中的值是完成的,而不是在发出之前。
EN

Stack Overflow用户
提问于 2018-10-14 20:58:17
回答 1查看 28关注 0票数 1

我在这里要实现的是,当IF语句是true时,fightID将更改为其他值,因此它将与之前分配的值不匹配,因此在战斗结束后无法立即通过控制台运行win-fight发出。但是我现在得到的只有Bad id,所以它甚至不会运行win-fight发出。我怎么才能解决这个问题?

代码语言:javascript
运行
复制
var uuid = uuid4();

        socket.on('attack', () => {

        var fightID = uuid;

        if(enemyHealth === 0 && uuid4.valid(uuid) === fightID|| userHealth === 0 
        && enemyHealth === 0 && uuid4.valid(uuid) === fightID) {

          fightID = 185;

         socket.emit('win-fight'); // next emit
       } else {
         console.log('Bad id');
       }

    });
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-10-14 21:01:20

如果我正确理解你的问题,应该通过以下调整来解决这个问题:

代码语言:javascript
运行
复制
var uuid = uuid4();

var isFightFinished = false;

// Declare fightID here
var fightID = uuid;

    socket.on('attack', () => {
    // Remove fightID from here
    // var fightID = uuid;

    if(isFightFinished === false && (enemyHealth <= 0 || userHealth <= 0)) {

      // Now you're newly assigned fightID is remembered for the next attack 
      // event
      fightID = 185;

      isFightFinished = true;

     socket.emit('win-fight'); // next emit
   } else {
     console.log('Bad id');
   }

});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52807036

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档