Discord 如果存在';没有活动吗?

Discord 如果存在';没有活动吗?,discord,discord.js,bots,Discord,Discord.js,Bots,这是我的密码: client.on("message", (message) => { if (message.content.startsWith("!create")) { var collection = message.mentions.users; console.log(collection.array()); let createdChannel = message.guild.c

这是我的密码:

client.on("message", (message) => {
    if (message.content.startsWith("!create")) {
        var collection = message.mentions.users;
        console.log(collection.array());
        let createdChannel = message.guild.channels.create(`${message.member.displayName}'s Room`, {
            type: 'voice',
            permissionOverwrites: [
                {
                    id: message.guild.roles.everyone,
                    deny: ['VIEW_CHANNEL'],
                },
                ...collection.map(user => {
                    return {
                        id: user.id,
                        allow: ['VIEW_CHANNEL'],
                    }
                }),
            ],
        })
        let timeout = setTimeout(function () {
            console.log(createdChannel);
            createdChannel.VoiceState.delete();
        }, 12000);
        client.on("voiceStateUpdate", (oldState, newState) => {
            clearInterval(timeout);
        })
    }
});

有人告诉我,我需要解决这个承诺,但我就是不明白为什么。我不断收到错误
TypeError:无法读取未定义的属性“delete”
。如何解决此问题?

首先,
GuildChannelManager\create()
方法返回一个承诺。因此,您应该在定义其结果之前等待该方法,如下所示

此外,
VoiceChannel
没有
VoiceState
属性。请参阅下面的代码

另外,
timeout
也是一个超时函数。没有休息。因此,为什么在本例中没有理由使用
clearInterval()
,而是使用
clearTimeout()

最终代码
client.on(“消息”,异步(消息)=>{
if(message.content.startsWith(“!create”)){
var collection=message.indications.users;
log(collection.array());
让createdChannel=wait message.guild.channels.create(`${message.member.displayName}的房间`{
键入:“声音”,
许可证覆盖:[
{
id:message.guild.roles.everyone,
拒绝:[“查看频道”],
},
…collection.map(用户=>{
返回{
id:user.id,
允许:[“查看频道”],
}
}),
],
})
let timeout=setTimeout(函数(){
console.log(createdChannel);
createdChannel.delete();
}, 12000);
client.on(“voiceStateUpdate”,(旧状态、新状态)=>{
clearTimeout(超时);
})
}
});

哦,我的天哪,它能工作!!你是最好的,非常感谢much@BanatatoMelonwi没问题!你介意把我的答案标记为正确的,这样其他人也能看到吗?是的!对不起,忘记了,因为有倒计时。