node.js - 异步函数 discord.js 中的 awaitMessages
问题描述
我对异步相当陌生,我正在尝试通过私人消息从用户那里获得对机器人的响应。我以前同步过,但不是异步的。我的工作代码可以正确地等待我对以下代码的反应,但它的工作方式(显然)似乎与我在(node:10080) UnhandledPromiseRejectionWarning: TypeError: msg.awaitMessages is not a function
运行它时遇到的错误不同。
我环顾四周,试图找到 awaitMessages 来处理异步函数中的私人消息,但它看起来比把这个问题的答案放在私人消息 discord.js 中等待回复更复杂
async function cardExists() {
let matchedcards = []
let msg = await message.author.send(`Please provide the cardnames that you would like to add to '${userdeckname}'.\n\n**NOTE:** Please separate each card with a comma and space, like so "Pact of Darkness, Aquos Slam, Karmic Balance"`)
const filter = m => m.author.id === message.author.id
const reply = await msg.awaitMessages(filter, { max: 1 })
.catch(console.error);
let cardsToAdd = reply.first()
let usercardnamearray = cardsToAdd.content.split(", ")
我只是想问这个问题,并等待用户在私人消息中回复不和谐机器人。在上面的代码片段之后运行的一些代码(一旦声明了 cardsToAdd )最终会检查列表中的每张卡是否存在于 mysql 数据库中,并将成功的卡推送到数组以供以后使用,并将失败的卡发送到私有聊天。
提前感谢您的帮助!
解决方案
根据官方文档使用msg.channel.awaitMessages
代替。msg.awaitMessages
推荐阅读
- postgresql - 如何仅使用开始日期在两个日期之间选择数据?
- c++ - Visual Studio Code 2019 (C++) 中的错误说“无法重载仅由返回类型区分的函数”
- jquery - 将值传递给弹出窗口 Django
- java - 如何修复媒体对象在 JavaFX 中不起作用?
- python - 在 tkinter 中创建一个具有与根窗口相同的小部件的新窗口
- c++ - 为什么 std::set (或 std::map )不能有效地使用三路比较器?
- javascript - 按 id 合并数组中的多个对象 - javascript
- go - Beego,无法查询多对多关系字段
- video - 调整视频大小
- php - Wordpress 如何获取单个帖子链接