You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Discord.js v13调用messages.fetch后使用.then方法报类型错误

报错原因

你调用interaction.channel.messages.fetch()时已经使用了await关键字,await会直接等待Promise执行完成并返回解析后的消息集合对象,而非Promise实例本身。只有Promise对象才拥有then方法,因此你对解析完成的普通对象调用then会触发该类型错误。

修复方案

有两种可行的修改方式,可根据你的代码习惯选择:

  • 方式一:移除await,保留Promise链式调用逻辑
let messages = interaction.channel.messages.fetch();
messages.then(async (messages) => {
    const output = messages.array().reverse().map(m => `${new Date(m.createdAt).toLocaleString('en-US')} - ${m.author.tag}: ${m.attachments.size > 0 ? m.attachments.first().proxyURL : m.content}`).join('\n');
    console.log(output)
})
  • 方式二:保留await,移除then调用,直接使用返回的消息集合,代码更简洁
let messages = await interaction.channel.messages.fetch();
const output = messages.array().reverse().map(m => `${new Date(m.createdAt).toLocaleString('en-US')} - ${m.author.tag}: ${m.attachments.size > 0 ? m.attachments.first().proxyURL : m.content}`).join('\n');
console.log(output)

内容的提问来源于stack exchange,提问作者Darek

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 13:06:05