Javascript 是否有一种方法可以在创建角色后立即向成员添加角色?(Discord.jsv12)

Javascript 是否有一种方法可以在创建角色后立即向成员添加角色?(Discord.jsv12),javascript,node.js,discord.js,Javascript,Node.js,Discord.js,我试图创建一个新角色,并在运行一次命令时将其添加到成员中,但似乎我必须运行两次命令(一次:创建角色,两次:将角色添加到成员) 我想这可能是由于以下错误:TypeError[无效类型]:提供的角色不是角色、雪花、数组或角色或雪花的集合。 if (command === 'test') { if (!message.mentions.users.size) { return message.reply('You need to tag a user!'); } const mem

我试图创建一个新角色,并在运行一次命令时将其添加到成员中,但似乎我必须运行两次命令(一次:创建角色,两次:将角色添加到成员)

我想这可能是由于以下错误:
TypeError[无效类型]:提供的角色不是角色、雪花、数组或角色或雪花的集合。

if (command === 'test') {
  if (!message.mentions.users.size) {
    return message.reply('You need to tag a user!');
  }
  const member = message.mentions.members.first();
  const testRole = message.guild.roles.cache.find(role => role.name === 'TestRole');

  if (!testRole) {
    message.guild.roles.create ({
      data: {
        name: 'TestRole',
        color: 'RANDOM',
      },
    }).catch(() => {
      message.reply('Unable to create role');
    });
  }
  member.roles.add(testRole).catch((error) => {console.log(error);});
}

是否有解决方法,以便在创建角色后立即将其添加到成员中?

由于
角色。create
返回承诺,您可以使用
.then()
将角色添加到成员中

if(命令=='test'){
如果(!message.notices.users.size){
返回message.reply('您需要标记用户!');
}
const member=message.indications.members.first();
const testRole=message.guild.roles.cache.find(role=>role.name=='testRole');
if(!testRole){
message.guild.roles.create({
数据:{
名称:“TestRole”,
颜色:“随机”,
},
})
。然后((角色)=>{
member.roles.add(testRole)
})
.catch(()=>{
message.reply('无法创建角色');
});
}否则{
member.roles.add(testRole.catch)((错误)=>{console.log(错误);});
}
}

谢谢!但是,
TypeError[INVALID\u TYPE]:提供的角色不是角色、雪花或数组或角色或雪花的集合。
仍然存在,是否有解决方案?我更新了答案,如果错误仍然存在,请通知我。