Как удалить отредактированные сообщения discord.js

#javascript #node.js #discord #discord.js

#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}) , но это не имело никакого значения.

Мы будем признательны за вашу помощь!

Ответ №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 });
 });
}
  

Ответ №2:

Вы можете сделать это с помощью 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 });