将bot消息保留在带有discord.js的变量中



我正在尝试制作一个编辑自己的消息的机器人,但我不知道如何保留发送消息。

我想做这样的事情:

  • 我触发命令
  • 机器人答案,例如"是"
  • 一秒钟后,"是"被否代替了

所以我想我需要将"是"消息保留在变量中才能编辑它,我该怎么做?

您可以通过链接.then()来跟踪您的消息。例如:

message.channel.send("Hello from StackOverflow!").then((msg) => {
    // Your logic ...
    // ...
    msg.edit("Hello!");
});

当您的机器人发送消息(例如message.channel.send('...')(时,该方法将返回MessagePromise。我不会进一步解释承诺如何在JavaScript中起作用,但是请记住,您在使用Discord.js开发时需要很多东西,这是现代JavaScript中的重要知识。

基本上,有两种方法可以访问您发送的消息。

  • 使用.then()
message.channel.send('...').then((msg) => {
    /* The sent message is stored in the msg variable, do whatever you want with it
    However, note that you cannot use it outside of this .then() block in any way */ 
});
  • 使用async/await
const msg = await message.channel.send('...');
// Now, your sent message is stored in the msg variable

请记住,await关键字只能在async函数中使用。因此,正如我们的大多数Discord.js代码都在活动中一样,您可以将活动听众这样:

client.on('message', async function() { /* ... */ });

仅包含async关键字允许您在其中使用await关键字。

再次,掌握承诺对于discord.js和总体而言,确实很重要。除了我在解释中提出的链接外,《 discord.js指南》的这篇文章可能会对您有很大帮助。

最新更新