javascript - discord.js - fetchMessage 没有给出有效的输出
问题描述
尝试为我的 Discord 创建一个应用程序响应系统,该系统从同一服务器中的预设 Discord 消息中获取信息。目前它吐出一个错误,指出它无法发送空消息:“UnhandledPromiseRejectionWarning:DiscordAPIError:无法发送空消息”
(fetchMessage 必须保存到变量中以供以后编辑)
if (message.content == '/results') {
let ttpResultsChannel = client.channels.get("662034469708103690")
var temp
ttpResultsChannel.fetchMessage('662034597508546582').then(results => temp = results.content)
message.channel.send(temp)
}
这是它应该输出的文本:
179654608371712000{}PASSED{}TestText1{}
514127283636797450{}FAILED{}TextTest6{}
我是 JavaScript 世界的新手,可能我的错误很简单,但这是我自己找不到解决方案的时候之一。提前致谢。
解决方案
该错误表示您正在尝试发送空消息,这是有道理的,因为fetchMessage
返回一个Promise
. 您正确地使用.then()
来获得结果,但是当 Promise 解决并且您已经获得结果并将其分配给 时temp
,message.channel.send()
已经执行了。要修复它,您只需将发送内容放入.then()
:
if (message.content == '/results') {
let ttpResultsChannel = client.channels.get("662034469708103690")
var temp
ttpResultsChannel.fetchMessage('662034597508546582')
.then(results => {
temp = results.content
message.channel.send(temp)
})
}
推荐阅读
- python - How to see lots of spots on a graph clearly?
- windows-10 - Conda-forge spaCy 安装失败 - 错误:WinError 87 - 参数不正确
- python - 使用python绘制具有大量异常值的每个类别的数据框值的更好方法
- php - 如何访问此 API 返回的值
- cassandra - 在 ubuntu 14.04 上安装 cassandra 时出错
- asp.net-core - .NET Core 2.2 发布问题
- python - 根据列表向字符串添加空格
- django - 为格式化的用户输入定制 Django Crispy 表单(由用户格式化)
- html - URL 路由 Laravel 中的重复项
- android - Android中绑定适配器有什么用?