我正在制作一个发送随机GIF的机器人,但GIF加载需要很长时间,因此我想告诉用户,通过说“ Gif加载很长时间”,然后编辑消息“收集随机GIF”,然后我希望它删除已编辑的消息。这是我的代码:
if (message.content === 'zhood'){
message.channel.send("*Gifs take long to load, please wait*").then((msg) => setTimeout(function(){
msg.edit('*Collecting random GIFs*');
}, 1000))
.then(msg =>{
msg.delete({ timeout: 2000 })
})
}
这是给出的错误:
(node:12248) UnhandledPromiseRejectionWarning: TypeError: msg.delete is not a function
我也尝试过做message.delete({timeout: 2000})
,但这没什么区别。
您的帮助将不胜感激!
答案 0 :(得分:1)
您不必创建另一个.then()
回调,只需在第一个回调中继续:
if (message.content === 'zhood') {
message.channel.send('*Gifs take long to load, please wait*').then((msg) => {
setTimeout(() => {
msg.edit('*Collecting random GIFs*');
}, 1000);
msg.delete({ timeout: 2000 });
});
}
答案 1 :(得分:0)
您可以使用async / await来做到这一点:
const waitMsg = await message.channel.send('*Gifs take long to load, please wait*');
setTimeout(() => {
waitMsg.edit('*Collecting random GIFs*');
}, 1000);
waitMsg.delete({ timeout: 2000 });