bulkDelete 方法未按预期工作

Posted

技术标签:

【中文标题】bulkDelete 方法未按预期工作【英文标题】:bulkDelete method not working as intended 【发布时间】:2019-04-22 03:58:34 【问题描述】:

我正在创建一个清理聊天的命令,因此您可以删除垃圾邮件或不需要的聊天等。该命令曾经运行良好,但再次运行失败,所以我倾向于认为这是我无法控制的事情,但我不知道。

try 
  let mod = message.guild.roles.find(role => role.name === "Mods");

  if (!message.member.roles.has(mod.id)) return message.reply('You are not allowed to use this command.');

  if (isNaN(args[0])) return message.reply("Please supply a number of messages to delete.");

  if (args[0] > 100 || args[0] < 2) return message.reply('Please supply a number between 2 and 100 to delete.');

  message.channel.bulkDelete(args[0] + 1);
 catch (err) 
  console.log(err)

如前所述,它一次按预期工作,每隔一次,它只是删除数百条消息,似乎没有理由。也许是因为我现在是自托管的,这是一个延迟问题?不确定,无论哪种方式,任何帮助都将不胜感激。谢谢。

【问题讨论】:

【参考方案1】:

很遗憾你还没有阅读official manual about bulkDelete method

否则你会知道它返回承诺。

还要记住这一点:

批量删除超过两周的给定消息。

这仅在使用机器人帐户可用

因此,如果您的帐户是机器人帐户,您可以这样做:

message.channel
  .bulkDelete(args[0] + 1)
  .then(messages => console.log(`Bulk deleted $messages.size messages`))
  .catch(console.error);

【讨论】:

那么,为什么我如何捕捉错误,当它是一个承诺,好的答案,只是好奇时,这很重要。 重要的是你必须履行这个承诺。 Promise 是一种特殊的类,必须使用 thenasync/await 糖执行 酷,只是好奇它是如何工作的,会记住它。谢谢,感谢您的回答。

以上是关于bulkDelete 方法未按预期工作的主要内容,如果未能解决你的问题,请参考以下文章

PHP file_exists 方法未按预期工作

Gensim Doc2Vec most_similar() 方法未按预期工作

UICollectionViewLayout 未按预期工作

Angular ngOnit () 未按预期工作

Swift UITapGestureRecognizer 未按预期工作

带有一个 goto 标签的 C 代码未按预期工作