好,所以我已经花了一段时间了,我不是在制作投票机器人,而是被卡在这部分代码上,我的意思是显示每个单击了不和谐反应的用户的列表,但是没有正确显示出来,似乎在控制台日志中同时打印了两个选项后显示用户
choices = {
"👍": "yes",
"👎": "No"
}
message.channel.fetchMessage(messageid ).then(r => {
r.reactions.forEach(async (H) => {
console.log(choices[H.emoji.name]);
users = await H.fetchUsers();
await users.forEach(g => {
console.log(g.username);
});
});
```
but I am getting
yes
no
bob
Sarah
luke
john
when I am trying to get
yes
bob
Sarah
luke
No
john
好,所以我已经花了一段时间了,我不是在制作投票机器人,而是被卡在这部分代码上,我的意思是显示在..中点击了响应的每个用户的列表。 。
发生的是您的async forEach同时运行,在回调函数中等待并不会阻止循环继续进行下一个迭代。每次运行时,您甚至可能会看到略有不同的结果。记录表情符号名称的速度非常快,因此首先在每个迭代中完成此操作,然后等待fetchUsers,结果是“是”和“否”。