首页 > 解决方案 > 如何将消息保存在变量中,以后再删除?

问题描述

我一直在尝试找到一种将消息保存为变量的方法。保存为变量后,我将删除该变量。我正在为我的机器人制作一个基于页面的命令,其中每个页面都有一个执行自定义操作的自定义反应。我决定为第一页制作一个简单的导航器。在导航器中,您使用表情符号做出反应,机器人会发送一条消息,告诉您选择一个页面并等待您的消息。当机器人收到您的消息时,我希望机器人删除它发送的消息。

我的代码看起来像这样。

let qsend = message.channel.send("Choose a page to go to.");// sends the bot's message
// bot receives my message!
qsend.delete() // deletes the bot's message

当我运行它时,我收到错误:UnhandledPromiseRejectionWarning: TypeError: qsend.delete is not a function. 我尝试了许多不同的解决方案,但仍然没有。

标签: javascriptdiscorddiscord.js

解决方案


message.channel.send()返回一个承诺(见这里)。要在不久之后删除它,您应该发送消息,等待响应并在此之后删除返回的消息。

message.channel.send('Foo bar')
  .then(msg => msg.delete())
  .catch(/* Error handling if the message isn't sent or returned.*/);

推荐阅读