【问题标题】:Discord Bot UnhandledPromiseRejectionWarning: TypeError: generalChannel.send is not a functionDiscord Bot UnhandledPromiseRejectionWarning:TypeError:generalChannel.send 不是函数
【发布时间】:2020-06-11 23:35:17
【问题描述】:

我遇到了这个错误,但我不确定是什么原因造成的。我尝试用谷歌搜索它并修复了我之前的错误,其中 get 是一个旧函数,现在称为 fetch - 但我找不到任何设置。我还尝试了 npm install 和 npm update 以查看是否有损坏。我这里有什么遗漏吗?

const {
    prefix,
    token,
} = require('./config.json');
const ytdl = require('ytdl-core');

const client = new Discord.Client();
client.login(token);

client.once('ready', () => {
    console.log('Ready!');
   });
   client.once('reconnecting', () => {
    console.log('Reconnecting!');
   });
   client.once('disconnect', () => {
    console.log('Disconnect!');
   });

client.on('ready', () => {
    var generalChannel = client.channels.fetch("2131436123767") // Replace with known channel ID
    generalChannel.send("Hello, world!")  
})```

Stack
  [1]: https://i.stack.imgur.com/Y2zOD.png

【问题讨论】:

    标签: discord discord.js


    【解决方案1】:

    Fetch 是一个异步函数,这意味着代码在默认情况下没有解析就可以继续运行

    要解决此问题,请使用 awaitthen

    等待:

    client.on("ready", async () => {
      const generalChannel = await client.channels.fetch("2131436123767");
      generalChannel.send("Hello, world!");
    });
    

    然后:

    client.on("ready,", () => {
      client.channels.fetch("2131436123767")
         .then(generalChannel => generalChannel.send("Hello, world!"));
    });
    

    您还必须将“就绪”的实例合并为一个,并且您不应该将另一个放在就绪事件内的事件上。

    【讨论】:

      猜你喜欢
      • 2020-07-17
      • 1970-01-01
      • 2017-11-15
      • 1970-01-01
      • 2021-10-22
      • 1970-01-01
      • 2021-07-03
      • 1970-01-01
      • 2021-04-12
      相关资源
      最近更新 更多