如何删除已编辑的消息discord.js

时间:2020-08-30 14:18:58

标签: javascript node.js discord discord.js

我正在制作一个发送随机GIF的机器人,但GIF加载需要很长时间,因此我想告诉用户,通过说“ Gif加载很长时间”,然后编辑消息“收集随机GIF”,然后我希望它删除已编辑的消息。这是我的代码:

if (message.content === 'zhood'){
        message.channel.send("*Gifs take long to load, please wait*").then((msg) => setTimeout(function(){
            msg.edit('*Collecting random GIFs*');
          }, 1000))
        .then(msg =>{
            msg.delete({ timeout: 2000 })
        })
}

这是给出的错误:

(node:12248) UnhandledPromiseRejectionWarning: TypeError: msg.delete is not a function

我也尝试过做message.delete({timeout: 2000}),但这没什么区别。

您的帮助将不胜感激!

2 个答案:

答案 0 :(得分:1)

您不必创建另一个.then()回调,只需在第一个回调中继续:

if (message.content === 'zhood') {
 message.channel.send('*Gifs take long to load, please wait*').then((msg) => {
  setTimeout(() => {
   msg.edit('*Collecting random GIFs*');
  }, 1000);
  msg.delete({ timeout: 2000 });
 });
}

答案 1 :(得分:0)

您可以使用async / await来做到这一点:

const waitMsg = await message.channel.send('*Gifs take long to load, please wait*');

setTimeout(() => {
  waitMsg.edit('*Collecting random GIFs*');
}, 1000);

waitMsg.delete({ timeout: 2000 });