我有以下代码:
let role = message.guild.roles.cache.find(rolename => rolename.name === toString(rankname))
message.member.roles.add(role).catch(error => {
console.log("Error: " + error)
})
我收到以下错误: Error Image
任何帮助将不胜感激,谢谢。 :)
仅供参考:Rankname 是一个由 promise 函数返回的字符串。
答案 0 :(得分:1)
您正在尝试从缓存中读取角色,但它可能不在其中,因此角色是 undefined
,请改用 RoleManager.resolve()
函数:
let role = message.guild.roles.resolve(toString(rankname))
请注意,使用 Snowflake 而不是名称会更好,如果您从 message.author.roles 获取角色的名称,您可能可以使用 id 来代替。