#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 });