javascript - 如何将消息保存在变量中,以后再删除?
问题描述
我一直在尝试找到一种将消息保存为变量的方法。保存为变量后,我将删除该变量。我正在为我的机器人制作一个基于页面的命令,其中每个页面都有一个执行自定义操作的自定义反应。我决定为第一页制作一个简单的导航器。在导航器中,您使用表情符号做出反应,机器人会发送一条消息,告诉您选择一个页面并等待您的消息。当机器人收到您的消息时,我希望机器人删除它发送的消息。
我的代码看起来像这样。
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
. 我尝试了许多不同的解决方案,但仍然没有。
解决方案
message.channel.send()
返回一个承诺(见这里)。要在不久之后删除它,您应该发送消息,等待响应并在此之后删除返回的消息。
message.channel.send('Foo bar')
.then(msg => msg.delete())
.catch(/* Error handling if the message isn't sent or returned.*/);
推荐阅读
- python - 将参数传递给函数内的 Python 函数
- azure - 资源组出站 IP 地址是否共享?
- python-3.7 - 递归删除超过 2 年的文件(具有特定扩展名,如 .zip、.log 等)
- c++ - 是否依赖 GCC/LLVM 的 `-fexceptions` 技术上未定义的行为?
- python - 是否有充分的理由在单元测试事务中捕获异常?
- netsuite - RCRD_DSNT_EXIST 在使用 aftersubmit 函数创建用户事件脚本时
- javascript - 在 noUiSlider 两个句柄中,是否总是从左端到最小值,从右端到最大值?
- javascript - 看不到 JSON 响应
- ruby-on-rails - 预编译资产的生产版本和开发版本之间的区别?
- ios - DYLD,未加载库 - 仅在试飞中发生