Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript I';我在编写一个不和谐机器人,但当我';我使用ping命令,它显示0毫秒。我应该怎么做?_Javascript_Node.js_Discord_Discord.js - Fatal编程技术网

Javascript I';我在编写一个不和谐机器人,但当我';我使用ping命令,它显示0毫秒。我应该怎么做?

Javascript I';我在编写一个不和谐机器人,但当我';我使用ping命令,它显示0毫秒。我应该怎么做?,javascript,node.js,discord,discord.js,Javascript,Node.js,Discord,Discord.js,我正在尝试执行ping命令,但当我使用它时,ping为0 const{MessageEmbed}=require(“discord.js”); module.exports={ 姓名:"平",, description:“这是ping命令”, 执行(消息、参数、不一致){ const msg=message.channel.send(“**ping…**”)。然后((m)=>m.delete({timeout:0})); const embed=new MessageEmbed().setCol

我正在尝试执行ping命令,但当我使用它时,ping为0

const{MessageEmbed}=require(“discord.js”);
module.exports={
姓名:"平",,
description:“这是ping命令”,
执行(消息、参数、不一致){
const msg=message.channel.send(“**ping…**”)。然后((m)=>m.delete({timeout:0}));
const embed=new MessageEmbed().setColor(“#42d242”).setDescription(`**:沙漏沙:${message.createdTimestamp-message.createdTimestamp}**`);
message.channel.send(嵌入);
},
};

对于初学者,您使用的是
message.createdTimestamp-message.createdTimestamp
。如果我们用一个随机数代替它们来表示时间,我们会得到
573-573
。显然这等于零。你是在从数字本身减去数字。试试像这样的东西

var ping = await msg.channel.send("Fetching ping...");

    const pingEmb = new MessageEmbed()
    .setColor("#42d242")
    .setDescription(`:hourglass_flowing_sand: Heartbeat is ${client.ws.ping}ms,\nMessage Roundtrip took ${ping.createdTimestamp - message.createdTimestamp}ms.`);

    return ping.edit("", {
        embed: pingEmb
    });

您的代码总是返回0的原因是您正在从自身中扣除,这将始终导致0,因为它是相同的数字


解决方案是创建一个函数,并使用该函数获取并从中扣除

const{MessageEmbed}=require(“discord.js”);
module.exports={
姓名:"平",,
description:“这是ping命令”,
执行(消息、参数、不一致){
const msg=message.channel.send(“**ping…**”)。然后((m)=>m.delete({timeout:0}));
const embed=new MessageEmbed().setColor(“#42d242”).setDescription(`**:沙漏沙:${new Date().getTime()-message.createdTimestamp}**`);
message.channel.send(嵌入);
},
};

message.createdTimestamp-message.createdTimestamp
就像计算
1-1
,它总是会返回0,因为你在扣除相同的数字。当他们可以使用
msg
createdTimestamp
值时,为什么要使用
new Date().getTime()
?在我的经验中,使用
newdate().getTime()
不如
msg.createdTimestamp-message.createdTimestamp
准确,但是ymmv@APartOfMe如果使用
msg.createdTimestamp
测量的是两条消息之间的时间,而不是当前时间。此方法可能导致ping更高。