javascript - void.delete() (discord.JS v13)
问题描述
所以我知道这个问题,我只是不知道这个问题的解决方案。console.log 说: TypeError: msg.delete is not a function
我知道味精是无效的,所以这就是它不起作用的原因。
我感谢每一个帮助!
我的代码如下所示:
message.channel.bulkDelete(messages);
message.channel.send("Messages getting purged...")
.then((sentMessage) => setTimeout(function () {
sentMessage.edit(` **${amount}** messages were purged!`)
}))
.then((msg) => setTimeout(function () { msg.delete() }, 6000)
解决方案
问题msg
不在于您发送的消息,而是您在此处返回的超时 ID(sentMessage) => setTimeout()
:.
尝试返回,sentMessage
以便您在下一个中抓住它then()
:
message.channel
.send('Messages getting purged...')
.then(sentMessage => {
setTimeout(function () {
sentMessage.edit(` **${amount}** messages were purged!`);
});
return sentMessage;
})
.then(msg =>
setTimeout(function () {
msg.delete();
}, 6000),
);
不过,在这里使用 async/await 可能会更好(只要确保你在 async 函数中):
try {
// send a message that messages are being deleted
const sentMessage = await message.channel.send('Messages getting purged...');
// delete the messages and wait for them to be deleted
const deletedMessages = await message.channel.bulkDelete(messages);
// edit the sent message when finished
await sentMessage.edit(`**${deletedMessages.size}** messages were purged!`);
// delete the message after 6 seconds
setTimeout(() => sentMessage.delete(), 6000);
} catch (err) {
message.channel.send(`Oops, there was an error`);
console.log(err);
}
推荐阅读
- angular - 使用图片角度和 laravel 添加数据
- assembly - 如何从 ASM(pic16f628a)或 C、C++ 中的二进制数中提取数字(二进制)
- matlab - 固定图形窗口大小
- jquery - 如何在 JQuery 中为具有相同类名的动态创建的链接添加事件侦听器?
- ios - 实例成员不能用于 struct swift 之间的嵌套类型的实例
- rust - Rust:如何定义一个可以返回任一结果的闭包
或结果 > - typescript - 类型参数不可分配给“从不”类型的参数
- python - 安装 Python 包 (pybeach)
- javascript - Raycaster 未检测到与 .gltf 对象的交集
- roblox - 从 roblox 的插件中读取脚本的内容