首页 > 解决方案 > 异步函数 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 数据库中,并将成功的卡推送到数组以供以后使用,并将失败的卡发送到私有聊天。

提前感谢您的帮助!

标签: node.jsasynchronousasync-awaitdiscord

解决方案


根据官方文档使用msg.channel.awaitMessages代替。msg.awaitMessages


推荐阅读