【发布时间】:2018-01-20 15:49:44
【问题描述】:
我正在设置一个 node.js discord 机器人,它使用 firebase 来存储用户的状态。我设置了一个 switch 语句来执行每个命令,到目前为止它运行良好。默认情况是这样的:
default:
message.reply("Unknown command type \"" + prefix + "help\" for a list of commands.")
但是,在实施 firebase 之后,我遇到了一个非常不寻常的错误。下面是用“!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
我认为这可能与从 firebase 检索用户状态的延迟有关。默认情况首先出现的事实是一个很好的迹象。虽然我很困惑为什么延迟会导致休息被忽略。
【问题讨论】:
-
所以你的意思是它总是在默认开关情况下进行?
-
@ManishKumawat 所有其他情况正常运行,只有这种情况(“检查”情况)属于默认情况。
-
默认和检查的顺序是什么?先写哪个?
-
这里有什么是无法判断的。我的猜测是您的带有未显示 switch 语句的代码被调用了两次。 switch 语句不会在你中断时失败。
-
@JasonGoemaat 你是对的,检查以确保不读取机器人自己的 cmets 的代码失败了。感谢您帮助查找故障
标签: javascript node.js firebase firebase-realtime-database switch-statement