创建discord.js频道后获取ID

时间:2020-04-13 22:02:27

标签: javascript

我正在尝试使用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]
    },
    }
  }
}

1 个答案:

答案 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()