You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord机器人ping命令返回nanms 无法正确输出延迟数值

问题原因
  • 作用域错误:当前ping命令写在Cog类中(从方法的self参数可判断),但代码直接调用了全局作用域的client实例,没有使用Cog绑定的机器人实例,导致读取的latency是未初始化的空值,计算后就会返回nan。
  • 心跳未完成:机器人启动后需要先完成和网关的首次心跳交互,才会生成有效的latency数值,若在机器人刚启动、还没完成首次心跳时就调用ping命令,也会返回nan。
修复方案

首先确保你在Cog初始化时已经将运行的机器人实例绑定到了self属性,比如self.bot = bot,之后把代码里的client.latency替换成self.bot.latency即可。
修复后的参考代码如下:

# To ping the bot (latency)
@commands.command()
async def ping(self, ctx):
    try:
        # 替换为Cog绑定的bot实例读取延迟
        latency = round(self.bot.latency * 1000, 1)
        await ctx.send(f"Pong! Latency: {latency}ms")
    except:
        await ctx.send(f"Error getting latency")

如果调整后刚启动时还是偶尔返回nan,等待1-2分钟等机器人完成所有网关交互后再测试即可,属于正常现象。

内容的提问来源于stack exchange,提问作者user13685226

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.20 09:27:03