如何解决此问题(node.js、discord.js) if(!args[1])返回message.channel.send('您需要指定一个人!') if(!args[2])返回message.channel.send('请指定禁令委员会的持续时间') var tim=args[2] const sweden=message.notices.users.first() message.react(“

如何解决此问题(node.js、discord.js) if(!args[1])返回message.channel.send('您需要指定一个人!') if(!args[2])返回message.channel.send('请指定禁令委员会的持续时间') var tim=args[2] const sweden=message.notices.users.first() message.react(“,node.js,discord.js,Node.js,Discord.js,首先,在发布stackoverflow之前,您应该美化您的代码,您可以删除break关键字,并解释它位于开关盒内 它不起作用的原因是因为您正在检查消息的反应,而不是您发送的嵌入,所以要解决这个问题,您需要为消息.channel.send(embad)分配一个变量,但这是一个承诺,所以您需要等待它,这需要一个异步函数 最后,aittreaction和createReactionCollector可能是更好的选择 下面是新代码: (异步()=>{ if(!args[1])返回message.chan

首先,在发布stackoverflow之前,您应该美化您的代码,您可以删除break关键字,并解释它位于开关盒内

它不起作用的原因是因为您正在检查
消息的反应,而不是您发送的嵌入,所以要解决这个问题,您需要为
消息.channel.send(embad)
分配一个变量,但这是一个承诺,所以您需要等待
它,这需要一个异步函数

最后,
aittreaction
createReactionCollector
可能是更好的选择

下面是新代码:

(异步()=>{
if(!args[1])返回message.channel.send('您需要指定一个人!');
if(!args[2])返回message.channel.send('请指定禁令委员会的持续时间')
如果(!message.guild)返回message.channel.send('禁止在这里不起作用');
var tim=args[2]
const sweden=message.notices.member.first()

const mappo=['我写这篇文章已经8个月了,我找到了答案,并且找到了一种更有效的方法。我不会发布整个代码,因为它很长,也不是很整洁。不过,这是一种更有效的计算反应的方法

我最初的代码是:


constupvows=message.reactions.cache.map(r=>${'此外,顶部还有一个case,虽然它只是说case'ban':尝试使用awaitReactions@Pepe_Worm:await仅在异步函数中有效,我没有。它在任何函数中都有效,这只是一个承诺,如果使用await,那么它需要在异步函数中function@Karizma那你建议我重写它吗?那很好,只需要ti我知道很多,这真的很有帮助。谢谢你解释我做错了什么,我已经做了不到一年了,所以像这样的东西帮助很大。很抱歉我没有提供更干净的代码,谢谢你的帮助。希望你过得愉快。没问题,很高兴你读了它,而不是仅仅复制代码,我做了一些更改我并没有解释,所以若你们并没有得到它们,就评论一下,不用担心干净的代码部分。最后我要指出的是,团队反对“谢谢”评论,所以如果你想对正确的答案表示感谢,你应该接受这篇文章。好的,我有一个问题,它说它无法读取未定义的“users”属性,不知道如何解决它。我已经做了一个小时了,但它仍然不起作用。希望你能帮助,如果不能,我会继续努力。这是个问题因为其中一个表情符号没有反应,所以你必须检查它们是否存在,然后调用
.users.size
,否则默认为0。编辑我的帖子是为了区别。你也不应该给它们命名
emoji1
emoji2
,我只是这么做了,因为我现在想不出任何名称是的!我用co替换了这个区域nst UPVOLUES和const UPVOLUES与我最初拥有的代码一起使用。感谢您所做的一切!感谢stack overflow成员在另一个问题上帮助了我,并因此找到了一个更好的解决方案。您还可以使用其他一些方法来实现此目的,但这是我发现的最通用、最简单的方法。如果您有任何疑问,请在注释中添加更多内容纽约!