-1

我设置了一个node.js不和谐的bot,它使用firebase来存储用户的状态。我设置了一个switch语句来检查每个命令,到目前为止它一直运行良好。默认情况下是这样的:即使在'break'的情况下,Javascript切换案例也会陷入默认状态

default: 
    message.reply("Unknown command type \"" + prefix + "help\" for a list of commands.") 

然而,实施火力点后,我遇到一个非常不寻常的bug。这里是用“!check”检查另一个用户状态的代码

case "check": 
    firebase.database().ref('/users/' + msg.replace("!check ", "")).once('value').then(function(snapshot) { 
     const status = snapshot.val().tagline; 
     message.reply(message.author.username + "'s status is: " + status); 
    }); 
    break; // <-- Break that isn't working 

但是,虽然代码有效,但默认情况下也会执行,如下所示。 discord image

我认为这可能与延迟从firebase检索用户状态有关。默认情况是第一个事实是这个事实的一个好兆头。尽管我很困惑,为什么延迟会导致突破被忽略。

+0

所以你在说什么,它总是在默认开关情况下? –

+0

@ManishKumawat所有其他案件的功能正常,只有这种情况下(“检查”的情况下),默认情况下。 – EthanBar

+0

默认和检查的顺序是什么?这是写在第一? –

回答

0

在我的情况下,switch语句被调用两次。如果机器人正在读取它自己的消息,则返回的代码失败。

相关问题