我对异步还很陌生,我正在尝试通过私人消息将用户的响应发送给机器人。我已经在同步之前做到了这一点,但不是异步的。我的工作代码可以正确等待我进入以下代码的反应,但是(似乎)它与运行(node:10080) UnhandledPromiseRejectionWarning: TypeError: msg.awaitMessages is not a function时出现错误的方式不同(显然)。

我四处寻找试图在异步函数中查找awaitMessages以处理私人消息的方法,但它看起来比将类似问题的答案Await reply in private message 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(", ")


我只是想问这个问题,然后等待用户以私信方式答复不和谐的bot。在上面的代码段(声明了cardsToAdd之后)之后运行的一些代码最终检查列表中的每张卡是否都存在于mysql数据库中,并将成功的卡推入数组以供以后使用,并将失败的卡发送给私有聊天。

感谢您的帮助!

最佳答案

根据official documentation使用msg.channel.awaitMessages代替msg.awaitMessages

09-25 20:11