我正在尝试使用discord.js创建一个discord机器人。
基本上,我想创建一个类别并获取ID,然后创建另一个以该类别为父类别的渠道,但我无法获取id
。
有了console.log(tempo1.id)
,我得到undefined
。
如果有人有主意我是接受者,那么我整天都在寻找和尝试,但没有定论。
提前感谢您的帮助=))
代码:
bot.on('message',message => {
if(message.content === ${prefix}vocal
){
const tempo1 = guild.channels.create('Channel Tempo', {
type: 'category'
}).then(console.log)
//guild.channels.create('Text Channel Tempo', { type: 'text' })
console.log(`Hello from ${tempo1}!`)
console.log(tempo1.id)
} })
控制台输出
Ready!
Hello from [object Promise]!
undefined
CategoryChannel {
type: 'category',
deleted: false,
id: '699377593845022741',
name: 'Channel Tempo',
rawPosition: 9,
parentID: null,
permissionOverwrites: Collection [Map] {},
guild: Guild {
members: GuildMemberManager {
cacheType: [Function: Collection],
cache: [Collection [Map]],
guild: [Circular]
},
channels: GuildChannelManager {
cacheType: [Function: Collection],
cache: [Collection [Map]],
guild: [Circular]
},
roles: RoleManager {
cacheType: [Function: Collection],
cache: [Collection [Map]],
guild: [Circular]
},
presences: PresenceManager {
cacheType: [Function: Collection],
cache: [Collection [Map]]
},
voiceStates: VoiceStateManager {
cacheType: [Function: Collection],
cache: [Collection [Map]],
guild: [Circular]
},
}
}
}
答案 0 :(得分:1)
guild.create
方法返回一个Promise
。要处理来自Promise的数据,应该解决它,因为Promise是关于异步功能的。因此,这里有2个选项:在.then块
const tempo1 = guild.channels.create('Channel Tempo', { type: 'category' }).then(result => {
console.log('Here is channel id', result.id)
//create another channel here
})
或使用async | await结构,例如
async function createChannel() {
const tempo1= await guild.channels.create('Channel Tempo', { type: 'category' })
console.log(result)
console.log(tempo1.id)
return tempo1
}
createChannel()