我正在设置一个node.js discord bot,它使用firebase来存储用户的状态。我设置了一个switch语句来完成每个命令,到目前为止它一直运行良好。默认情况是:
default:
message.reply("Unknown command type \"" + prefix + "help\" for a list of commands.")
然而,在实施firebase之后,我遇到了一个非常不寻常的bug。以下是使用"!检查"
检查其他用户状态的代码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
我认为这可能与延迟从firebase检索用户的状态有关。默认情况首先出现的事实是一个很好的迹象。虽然我很困惑为什么延迟会导致中断被忽略。
答案 0 :(得分:0)
在我的情况下,switch语句被调用了两次。如果机器人正在读取它自己的消息,则返回的代码失败。