Javascript 如何与家长创建不和谐频道?

Javascript 如何与家长创建不和谐频道?,javascript,node.js,discord,discord.js,Javascript,Node.js,Discord,Discord.js,我正在Discord.js中制作一个Discord机器人。我有一个函数可以做到这一点: 函数createChannel(){ randomString=crypto.randomBytes(12).toString('hex'); const randomCategory=message.guild.channels.create(随机字符串{ 类型:'类别', 许可证覆盖:[ { id:message.guild.id, 允许:[“查看频道”], }, ], }); message.guild

我正在Discord.js中制作一个Discord机器人。我有一个函数可以做到这一点:

函数createChannel(){
randomString=crypto.randomBytes(12).toString('hex');
const randomCategory=message.guild.channels.create(随机字符串{
类型:'类别',
许可证覆盖:[
{
id:message.guild.id,
允许:[“查看频道”],
},
],
});
message.guild.channels.create(随机字符串{
键入:“文本”,
父项:randomCategory.id,
许可证覆盖:[
{
id:message.guild.id,
允许:[“查看频道”],
},
],
});
message.guild.channels.create(随机字符串{
键入:“声音”,
父项:randomCategory.id,
许可证覆盖:[
{
id:message.guild.id,
允许:[“查看频道”],
},
],
});
}
这将创建一个类别,并使用具有相同名称的语音和文本频道填充该类别。但是,当我运行它时,频道无法正确设置其父频道。

根据,您应该将频道作为父频道而不是id进行传递。在创建子频道之前,您可能还应该等待类别创建

异步函数createChannel(){ const randomString=crypto.randomBytes(12).toString('hex');//在此处添加了const,因为您从未覆盖 const randomCategory=wait message.guild.channels.create(随机字符串,{ 类型:'类别', 权限覆盖:[{ id:message.guild.id, 允许:[“查看频道”], }] }); 等待消息。帮会。频道。创建(随机字符串{ 键入:“文本”, 父:随机类别, 权限覆盖:[{ id:message.guild.id, 允许:[“查看频道”], }] }); 等待消息.guild.channels.create(随机字符串,{ 键入:“声音”, 父:随机类别, 权限覆盖:[{ id:message.guild.id, 允许:[“查看频道”], }] }); }
guild.channels.create
返回一个承诺,因此您需要使用
.then()
方法或异步等待以获取
randomCategory
。目前,这只是一个待定的承诺,而不是返回的类别:

//使函数成为异步函数
异步函数createChannel(){
randomString=crypto.randomBytes(12).toString('hex');
//用等待来等待承诺的解决
const randomCategory=wait message.guild.channels.create(随机字符串{
类型:'类别',
许可证覆盖:[
{
id:message.guild.id,
允许:[“查看频道”],
},
],
});
message.guild.channels.create(随机字符串{
键入:“文本”,
//传递randomCategory对象,而不仅仅是id
父:随机类别,
许可证覆盖:[
{
id:message.guild.id,
允许:[“查看频道”],
},
],
});
message.guild.channels.create(随机字符串{
键入:“声音”,
//传递randomCategory对象,而不仅仅是id
父:随机类别,
许可证覆盖:[
{
id:message.guild.id,
允许:[“查看频道”],
},
],
});
}
它似乎工作得很好:


也许您正在寻找randomCategory.parentID