Discord.js client.channel.cache.get().send()不是函数

Discord.js client.channel.cache.get().send()不是函数,discord.js,Discord.js,每当我尝试运行它时,它总是说:“(节点:20284)UnhandledPromisejectionWarning:TypeError:client.channels.cache.get(…).send不是一个函数”这不是一个真正的解决方案,而是一个变通方法。造成此问题的原因可能是频道未存储在ChannelManager缓存中,我不知道解决方案(如果有人这样做,我可以编辑答案),但您可以使用基于承诺的ChannelManager.fetch(id:string)直接获取频道,如下所示: const

每当我尝试运行它时,它总是说:“(节点:20284)UnhandledPromisejectionWarning:TypeError:client.channels.cache.get(…).send不是一个函数”

这不是一个真正的解决方案,而是一个变通方法。造成此问题的原因可能是频道未存储在ChannelManager缓存中,我不知道解决方案(如果有人这样做,我可以编辑答案),但您可以使用基于承诺的
ChannelManager.fetch(id:string)
直接获取频道,如下所示:

const{Client}=require('discord.js');
const client=new client();
on('ready',异步函数(){
const channel=wait client.channels.fetch('channelId');
发送(“消息”);
});
client.login('token');

我应该提到,我正在尝试让bot在启动时发送一条消息,这样我就可以首先检查它是否工作,因为我之前一直收到关于同样事情的错误。它说wait仅在async函数中有效是的,确切地说,只需在处理程序函数之前写入async即可。因此,
()=>{
应该变成
async()=>{
,然后可以使用wait。
const Discord = require('discord.js');
const client = new Discord.Client();

const token = 'token';

client.on('ready', () => {
    client.channels.cache.get('channelid').send('Test');
});

client.login(token);