【问题标题】:What is the fn.bind Error code for discord.js?discord.js 的 fn.bind 错误代码是什么?
【发布时间】:2021-05-23 15:36:58
【问题描述】:

我正在尝试创建一个命令,让您了解命令 !role {pronoun}。如果代词存在,那么它会给你现有的角色,但如果它不存在,它会给你已经做出的角色。每次我运行命令时都会收到一条错误消息,上面写着“类型错误:fn.bind 不是函数”。我不知道为什么,如果你们都可以帮助我,那就太棒了。

client.on('message', async message => {
        var input = (message.content.substr(12))
        var roleName = (message.content.substr(12));
        var role = message.guild.roles.cache.find(r => r.name == roleName);
        if(!role){
            if (message.member.roles.cache.find("name", "Member")){ 
            message.channel.sendMessage('Sorry you already have a pronoun');
            return;
            }
            else if (input === ""){
            message.channel.sendMessage('Please Enter a Valid Pronoun Name');
            return;
            }
            else{
            var pronounName = message.guild.roles.find(role => role.name === "Member");
            message.member.guild.createRole({
                name: message.content.substr(12),
        }).then(function(role)
        {
            message.member.addRole(role);
            message.member.addRole(pronounName);
            message.channel.sendMessage('You have created the pronoun: ' + role);
        });
            }   
        }else{
            message.channel.sendMessage('That Pronoun Already Exists!');
            return;
        }
    })

【问题讨论】:

    标签: javascript node.js discord.js


    【解决方案1】:

    这是由message.member.roles.cache.find("name", "Member") 引起的。 .find() 方法接受一个函数作为它的第一个参数(你提供了一个字符串)和用作this 的值作为它的第二个参数(你提供了另一个字符串)。

    您可以通过检查name 属性是否等于"Member" 来找到角色:

    message.member.roles.cache.find((role) => role.name === 'Member')
    

    PS:您的代码中可能存在其他错误,但 TypeError: fn.bind is not a function 可以通过此解决。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-03
      • 2011-10-07
      相关资源
      最近更新 更多