TypeError报错:report_message.awaitMessageComponent不是函数,求解决方案
解决TypeError: report_message.awaitMessageComponent is not a function
错误根源
channel.send() 是异步方法,你没有用 await 接收返回值,导致 report_message 是 Promise 对象而非 Discord.js 的 Message 实例,所以不存在 awaitMessageComponent 方法。另外你设置的 time 参数是超大字符串,会被解析为无效值,也需要修正。
修正后的代码
// 确保这段代码在 async 函数内部执行 const report_message = await interaction.guild.channels.cache.get('1230849852024557638').send({ content:"Nieuwe Report!", embeds: [embed], components: button_row }); const report_filter = (interaction_filter) => {return true;} try { // time 改为数字类型的毫秒值,示例为1分钟(60000毫秒) const confirmation = await report_message.awaitMessageComponent({ filter: report_filter, time: 60000 }) // 此处添加按钮被点击后的逻辑 } catch (err) { // 处理超时或异常,移除组件避免无效交互 await report_message.edit({ components: [] }); }
核心修改说明
- 给
channel.send()添加await,确保获取到真正的Message对象 - 将
time参数从超大字符串改为合法的数字毫秒值(比如60000代表1分钟) - 新增
catch块处理超时或异常场景,同时移除组件防止后续无效交互
内容的提问来源于stack exchange,提问作者user24636442
相关产品推荐
相关产品推荐

