未捕获的 Promise 错误:TypeError:成员不是函数

Posted

技术标签:

【中文标题】未捕获的 Promise 错误:TypeError:成员不是函数【英文标题】:Uncaught Promise Error: TypeError: member is not a function 【发布时间】:2019-10-31 15:00:48 【问题描述】:

使用我的验证机器人,它会向用户发送消息,用户用代码做出响应,并且它应该赋予角色。但是,它什么也不做并发布此错误。

未捕获的承诺错误: 类型错误:member 不是函数

我尝试将users 更改为members 反之亦然,而是在配置中定义公会、角色等,但都没有解决错误。

client.on('message', async (message) => 
    if (message.author.bot || !message.author.token || message.channel.type !== `dm`) return
    if (message.content !== (verifymsg.replace('token', message.author.token))) return
    message.channel.send(
        embed: 
            color: Math.floor(Math.random() * (0xFFFFFF + 1)),
            description: completemsg,
            footer: 
                text: `Verification Success`
            
        
    )
  let member = message.mentions.users.first(); 
    member(message.member).addRole(member.guild("528721525390442526").roles.find("name", "Member"));
)

我希望为成员添加一个角色,让他们可以访问公会。

【问题讨论】:

【参考方案1】:

您编写member(message.member) 的方式是告诉javascript 执行带有参数message.member 的函数member()。您尚未在代码中的任何位置定义上述函数,这就是它抛出错误的原因。

您想使用Guild.member() 方法

例子:

try 
  const guild = client.guilds.get('528721525390442526');
  const member = guild.member(message.author.id);
  const role = guild.roles.find(r => r.name === 'Member');

  member.addRole(role);
  member.send('Verification successful.');
 catch(err) 
  console.error(err);

【讨论】:

干杯,除此之外,我还尝试更改“message.mentions.members.first();”到“message.mentions.users.first();”因为每当我使用 members.first 时,我总是收到“TypeError:无法读取属性‘first’ of null” 听起来命令作者没有提到任何人。我编辑了代码以首先检查是否有提到的成员。 它会上升到它响应“已验证”的位置,但它仍然没有添加角色,我已经尝试过“member.addRole("name", "Member");"但没有。 我再次编辑了代码以更详细地显示角色添加。 今天真的不喜欢我,“ReferenceError: member is not defined”。 " if (!message.mentions.members) return message.channel.send(member.toString() + "感谢您的验证。");"没有标记他们,我认为这就是为什么它没有给他们所说的角色。

以上是关于未捕获的 Promise 错误:TypeError:成员不是函数的主要内容,如果未能解决你的问题,请参考以下文章

redux-promise:未捕获的 TypeError:中间件不是函数

Vue 错误:未捕获(在承诺中)TypeError 无法读取 null 的属性(读取“地址”)

v-on 处理程序中的错误(Promise/async):“TypeError:无法读取未定义的属性“数据””//未定义

Cloud Functions 错误:函数返回未定义、预期的 Promise 或值,以及 TypeError:无法读取未定义的属性“First_Name”

如何使用自定义错误消息捕获“TypeError:无法读取未定义的属性(读取'0')”?

Ember CLI 控制器测试:未捕获的 TypeError:无法读取 null 的属性“transitionToRoute”