#javascript #node.js #discord #discord.js
Вопрос:
Поэтому я создаю команду очистки для своего бота, и я хочу, чтобы бот удалил вставку, которую он отправляет через 2 секунды. В настоящее время я использую discord.js, и я также могу использовать ms-плагин node. Поэтому всякий раз, когда я пытаюсь что-то вроде
try {
await message.channel.bulkDelete(fetched)
.then(messages =>message.channel.send(purgeEmbed))
}catch (err) {
console.log(err);
message.channel.send(issuePurgeEmbed);
}
var message = await message.channel.send(purgeEmbed);
message.delete({timeout: 2000});
}
}
Это вроде как работает. В результате бот отправляет 2 сообщения и удаляет одно через 2 секунды. И тогда я попытался
try {
await message.channel.bulkDelete(fetched)
.then(messages =>message.channel.send(purgeEmbed))
.then(message.delete({timeout: 2000})
}catch (err) {
console.log(err);
message.channel.send(issuePurgeEmbed);
}
}
}
и это тоже не сработало. Я относительно новичок в кодировании, так что, возможно, это просто что-то, чему я еще не научился. Если есть более простой способ сделать это с помощью ms-плагина node, это тоже сработает. Любая помощь будет признательна.
Комментарии:
1. Вам следует удалить часть try catch и wait и использовать
promise.then(...).catch(...)
синтаксис.2. Нет необходимости использовать
.then()
, если вы не используете возвращаемые значения из обещаний. Попробуйте использовать простую последовательность
Ответ №1:
Я исправил код с более простой последовательностью благодаря Elitezen и Shivam. Я отредактировал код, так что теперь в нем говорится:
await message.channel.bulkDelete(fetched);
var message = await message.channel.send(purgeEmbed).catch(err => console.log(err))
message.delete({timeout: 2000 }).catch(err => console.log(err));
Спасибо за помощь вам двоим 🙂
Ответ №2:
Один из способов сделать это -:
await message.channel.bulkDelete(fetched).then(setTimeout(() => {
message.delete().catch(err => console.log(err));
},2000));