-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語句被調用兩次。如果機器人正在讀取它自己的消息,則返回的代碼失敗。

相關問題