异步函数 discord.js 中的 awaitMessages
Posted
技术标签:
【中文标题】异步函数 discord.js 中的 awaitMessages【英文标题】:awaitMessages inside async function discord.js 【发布时间】:2019-10-20 22:52:28 【问题描述】:我对异步相当陌生,我正在尝试通过私人消息从用户那里获得对机器人的响应。我以前同步过,但不是异步的。我有工作代码可以正确等待我在以下代码中工作的反应,但它的工作方式(显然)似乎与我在运行它时收到(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(", ")
我只是想提出问题,并等待用户在私人消息中回复 discord 机器人。在上面的 sn-p 之后运行的一些代码(一旦声明了 cardsToAdd)最终会检查列表中的每个卡片是否存在于 mysql 数据库中,并将成功的卡片推送到一个数组以供以后使用,并将失败的卡片发送到私聊。
提前感谢您的帮助!
【问题讨论】:
我不熟悉那个库,但看起来你应该使用msg.channel.awaitMessages
而不是 msg.awaitMessages
discord.js.org/#/docs/main/stable/class/…
嗯...我想既然这是一条私人消息,就没有“频道”可以发送它。我想这解决了这个问题。我觉得自己像个白痴。谢谢! XD 如果您想将其发布为答案而不是评论,我可以将其标记为答案。
【参考方案1】:
根据official documentation,使用msg.channel.awaitMessages
而不是msg.awaitMessages
。
【讨论】:
以上是关于异步函数 discord.js 中的 awaitMessages的主要内容,如果未能解决你的问题,请参考以下文章
如何在异步函数 discord.js 中使用 message.react() 中的循环
discord.js bot await 仅在异步函数中有效
await 仅对异步函数有效城市字典 api discord js
Discord JS bot 如何从 API 获取递归异步函数