我该如何解决这个承诺?
Posted
技术标签:
【中文标题】我该如何解决这个承诺?【英文标题】:How can I resolve this promise? 【发布时间】:2021-06-29 18:41:53 【问题描述】:这是我的代码:
collector.on('collect', async (reaction, user) =>
console.log(reaction);
if (!user.bot)
let role = reaction.message.guild.roles.cache.find(role => role.name === ra[emojiarray.indexOf(reaction)]);
await reaction.message.guild.members.fetch(user).roles.add(role);
);
除非我收到错误 UnhandledPromiseRejectionWarning: TypeError: Cannot read property 'add' of undefined
。我被告知要兑现承诺,我尝试过,但我想我没有做对。我该如何解决这个问题?
谢谢!
【问题讨论】:
【参考方案1】:您可能需要await
获取用户,然后将角色添加到用户。
collector.on('collect', async (reaction, user) =>
console.log(reaction);
if (!user.bot)
let role = reaction.message.guild.roles.cache.find(role => role.name === ra[emojiarray.indexOf(reaction)]);
let userMember = await reaction.message.guild.members.fetch(user);
userMember.roles.add(role);
);
【讨论】:
嗯。我得到了UnhandledPromiseRejectionWarning: ReferenceError: Cannot access 'user' before initialization
对不起!我更新了变量名,因为我太快添加了 user
变量。我将添加的user
变量更改为userMember
,因此它不会与参数冲突。
哈哈没问题!仍然出现错误,但我认为这不再是问题了。你是最棒的,谢谢!!
我可以通过查看完整代码来更好地帮助您。您可以使用 replit.com 之类的网站来托管 NodeJS 代码并在此处分享。以上是关于我该如何解决这个承诺?的主要内容,如果未能解决你的问题,请参考以下文章