Collection#find:改为传递一个函数

时间:2018-09-09 18:31:41

标签: discord.js

我对node.js还是很陌生,并且正在使用discord.js开发一个discord机器人,我正在尝试使用命令来分配角色。当我执行代码并键入命令后,它可以成功运行,但在控制台中弹出“ DeprecationWarning:Collection#find:改为传递函数”,该如何摆脱呢?

https://i.imgur.com/agKFNsF.png

2 个答案:

答案 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');

希望这会有所帮助!