我对node.js还是很陌生,并且正在使用discord.js开发一个discord机器人,我正在尝试使用命令来分配角色。当我执行代码并键入命令后,它可以成功运行,但在控制台中弹出“ DeprecationWarning:Collection#find:改为传递函数”,该如何摆脱呢?
答案 0 :(得分:5)
此警告是由以下行引起的:
$ python3 yield_manual.py
1
42
在Discord.js的早期版本中,这将是有效的,但是它们现在已经重做了var role = message.guild.roles.find('name', 'Epic Gamer');
函数。您无需传递属性和值,而是传递过滤函数。这应该起作用:
find
我们传入箭头函数var role = message.guild.roles.find(role => role.name === "Epic Gamer")
,而不是传入'name'
(属性)和'Epic Gamer'
(我们要搜索/过滤的值)。这就像映射。 role => role.name === 'Epic Gamer'
将find
中的每个角色作为message.guild.roles
传递给函数,然后检查我们想要的属性是否等于我们想要的值。
如果您想进一步了解role
功能,请查看the official documentation.
答案 1 :(得分:1)
以find
方法传递谓词函数,看看find
函数上的discord.js文档。
将find
语句更改为
var role = message.guild.roles.find(role => role.name === 'Epic Gamer');
希望这会有所帮助!