Javascript 相反,计数器返回0,我的代码返回错误

Javascript 相反,计数器返回0,我的代码返回错误,javascript,node.js,discord.js,Javascript,Node.js,Discord.js,正在为我的Discord.js bot创建轮询模块,我不断收到错误消息: 无法读取未定义的属性“count” 计算收集的反应量时 我把这个项目作为一个“深入研究”类的项目,一直在尝试自己编写文档等等,我读过其他相对类似的问题并看到了提供的答案,但无论我如何尝试,我都无法将这些答案实现到我自己的代码中 const reactions5=await poll5.await reactions(reaction=>reaction.emoji.name==='\u0031\u20E3'|| react

正在为我的Discord.js bot创建轮询模块,我不断收到错误消息:

无法读取未定义的属性“count”

计算收集的反应量时

我把这个项目作为一个“深入研究”类的项目,一直在尝试自己编写文档等等,我读过其他相对类似的问题并看到了提供的答案,但无论我如何尝试,我都无法将这些答案实现到我自己的代码中

const reactions5=await poll5.await reactions(reaction=>reaction.emoji.name==='\u0031\u20E3'||
reaction.emoji.name=='\u0032\u20E3'||
reaction.emoji.name=='\u0033\u20E3'||
reaction.emoji.name=='\u0034\u20E3'||
reaction.emoji.name=='\u0035\u20E3'{
时间:`${sysTime}`
});
const results5=新的Discord.RichEmbed()
.setColor(“#1dd1a1”)
.setFooter('HiveBot-Poll模块')
.setTitle('已收集结果!')
.setDescription(`**\u问题__**
${pollQuestion}
**__投票__**
**投票**:1:*-**${reactions5.get('\u0031\u20E3')。count-1}
**投票**:两个:*-**${reactions5.get('\u0032\u20E3')。计数-1}
**投票**:三个:**-**${reactions5.get('\u0033\u20E3')。计数-1}
**投票**:四个:*-**${reactions5.get('\u0034\u20E3')。计数-1}
**投票**:5:*-**${reactions5.get('\u0035\u20E3')。count-1}`)
message.channel.send(结果5);
我使用-1,因为我的bot首先添加了一个反应,以创建一个模板供其他用户单击反应,所以我希望它返回0,但我只得到上面提到的错误

编辑:如果用户添加反应,则计数变为

2-1=1

由于某些原因,当没有人反应时,只留下机器人反应(我可以看到它反应为0_o),而不是计数

1-1=0

我得到了上面的错误


希望这能消除任何困惑。

下次有人试图确保ReactionCollector实际拾取机器人的反应时,不要等待机器人做出反应,然后再开始观察它们:D

        const poll5 = await message.channel.send(embed5);
            poll5.react('\u0031\u20E3');
            poll5.react('\u0032\u20E3');
            poll5.react('\u0033\u20E3');
            poll5.react('\u0034\u20E3');
            poll5.react('\u0035\u20E3');

        const reactions5 = await poll5.awaitReactions(reaction => reaction.emoji.name === '\u0031\u20E3' || reaction.emoji.name === '\u0032\u20E3' || reaction.emoji.name === '\u0033\u20E3' || reaction.emoji.name === '\u0034\u20E3' || reaction.emoji.name === '\u0035\u20E3', { time: `${sysTime}`})

“当我的机器人首先添加一个反应以创建一个模板供其他用户单击反应时,我执行-1”很明显,其中一个没有被添加,因此
reactions5.get(…)
返回
未定义的
。我不熟悉这个
poll5.awaitReactions
电话,但看起来你肯定在等待五个反应中的任何一个,而不是全部五个。更新根本没有提到我上面的评论。如果进行调试,您会发现其中一个
reaction5.get(…)
调用返回
undefined。
您的任务是找出原因,我们不能仅从上面的信息来做这件事。(虽然,再一次,在一个没有受过教育的人看来,<代码>等待反应<代码>将等待所有5。)如果我把我的沮丧发泄在你身上,我很抱歉,我完全理解你在试图帮助你,其他四个都是完全一样的,如果客户没有添加反应,它将返回1,如果我在我的实际不和谐账户上添加反应,它返回2。再次道歉,不用担心。你把那些
console.log
s放在哪里了?错误很明显。我建议使用调试器进行调试。如果出于任何原因您不能这样做,我建议在
const result5=…
函数getReactionCount(name){console.log(`Reaction${name}:${typeof reaction5.get(name)});返回reaction5.get(name).count-1;}
然后更新
getDescription
代码以使用
${getReactionCount('\u0031\u20E3')
诸如此类。其中一个将在出现错误之前在名称旁边显示
未定义的
。除此之外,恐怕我无能为力。祝你好运!你完全正确,我一定是在执行
控制台时出错了。因为你的函数正在返回
反应2⃣: 未定义