如何获得与表情符号对特定消息做出反应的用户数量
message.channel.fetchMessage(message.id).then(function(r){
return console.log(r.reactions.filter(a => a.emoji.name == '')).users.size
})
答案 0 :(得分:0)
<MessageReaction>
有count属性,返回
给出相同反应的人数
这正是您正在寻找的内容,因此您可以映射集合以获取count属性,如下所示:
message.channel.fetchMessage(message.id).then(r => {
return console.log(r.reactions.filter(a => a.emoji.name == '').map(reaction => reaction.count)[0]);
});
答案 1 :(得分:0)
这是一个非常有趣的问题,我不确定为什么,但users
道具似乎并不准确。此外,users
是Collection
,没有.size
属性。
相反,我建议使用<MessageReaction>.count
属性。像这样:
message.channel.fetchMessage('<message id>')
.then(msg => {
let downVoteCollection = msg.reactions.filter(rx => rx.emoji.name == '');
console.log(downVoteCollection.first().count);
})
.catch(console.error);
您可以使用.first()
的{{1}}方法,因为您只会返回返回的downvote表情符号,因此只会返回一种类型的Collection
集合。