【问题标题】:How to fix "Null" output for AFK Channel如何修复 AFK 通道的“空”输出
【发布时间】:2019-11-14 16:40:03
【问题描述】:

我遇到了一个问题,当我启动我的机器人并运行此命令时,它显示“未定义”或“空”作为输出。我该如何解决这个问题?

我已尝试使用与所有其他选项相同的方法。

if (serv.verified == false) {
    var veri = "No.";
} 

它在哪里检查布尔值、字符串或数字。它似乎不起作用。它将我的变量设置为 null 或 undefined。

if (serv.afkChannel == `null`) {
    var afk = "No AFK VC.";
}

if (serv.verified == true) {
    var veri = "Yes.";
} 

if (serv.verified == false) {
    var veri = "No.";
} 

        var myInfo2 = new discord.RichEmbed()
        .setAuthor(`${serv.name}'s guild info`)
        .addField(`AFK Channel`,`${afk}`,true)
        .addField(`AFK Timeout`,`${serv.afkTimeout}s`,true)
        .addField(`Channels`,`${serv.channels.size}`,true)
        .addField(`Creation of Guild`,`${serv.createdAt}`,true)
        .addField(`Default Notification`, defn,true)

预期结果:它会说 No AFK VC 实际结果:显示未定义或为空。

【问题讨论】:

    标签: javascript discord.js commando


    【解决方案1】:

    首先,您要检查是否有频道。 然后,您要将变量afk 设置为No AFK Channel。 最后,如果有一个 afk 频道,它会说是 AFK 频道。

    if (!serv.afkChannel)
        var afk = `No AFK Channel`
        else var afk = `${serv.afkChannel}`
    

    “!”基本上使以下代码相反。 下一个代码会发出the variable afk is already defined 错误,但它基本上是“或”。如果没有 AFK 通道,则,或 如果有 AFK 通道,则。

    如果你想的话,你现在需要的只是找出如何去掉#。享受吧!

    【讨论】:

      【解决方案2】:

      除了...,'null' 之外,没有任何东西会匹配文字字符串 'null'。这里只是一个简单的例子:

      console.log(null == 'null');       // The identity operator (==) even does type
      console.log(undefined == 'null');  // conversions and these aren't the same.
      
      console.log(null == null);         // These are both true, because null is not a string.
      console.log(undefined == null);    // <-- Watch out: this is only true using the twins.
      
      console.log('null' == 'null');     // The only match is the string compared to itself.

      如果未定义通道,Guild.afkChannel 将是 undefined。什么都不应该返回 string 'null'。话虽如此,当您将serv.afkChannel`null` 进行比较时,布尔值永远不会为真。由于链中没有 else,因此无法定义 afk


      在声明afk 变量时,您可以使用logical OR operator (||) 替换您的if/else 语句并防止您的问题:

      var afk = serv.afkChannel || 'No AFK Channel';
      

      如果serv.afkChannelfalsy,则变量将被声明为'No AFK Channel'

      【讨论】:

        猜你喜欢
        • 2020-03-04
        • 1970-01-01
        • 2013-08-12
        • 2011-01-01
        • 2022-01-17
        • 2021-09-22
        • 1970-01-01
        • 2015-02-20
        • 2023-03-26
        相关资源
        最近更新 更多