这段代码在3秒后删除特定通道中的任何消息
client.on("messageCreate", async message =>{
if (message.channel.id === '899644830848798755')
{
setTimeout(() => message.delete(), 3000)
}
});
我想要的是5分钟后,它会删除自己的消息,并发送一个消息而不删除它。像这样:
client.on('ready', () => {
setInterval(() => {
message.channel.bulkDelete.then(() => {
client.channels.cache.get('899644830848798755').send('Hello here!')
}, 300000);
})
,谁能告诉我setTimeout()
和setInterval()
的区别是什么?
您正在使用bulkDelete
方法,它将每5分钟删除消息。您需要创建一个函数来创建您的循环,您也可以使用setInterval
。
使用setInterval
方法:
client.on('ready', () => {
setInterval(() => {
const chan = client.channels.cache.get('899644830848798755');
chan.send('Hello here!')
}, 300000);
})
使用function
方法:
client.on('ready', () => {
async function repeat() { //First loop of function declined.
setTimeout(() => {
const chan = client.channels.cache.get('899644830848798755');
chan.send('Hello here!')
repeat(); //Second loop Accepted for loop
}, 300000)
}
repeat(); //First loop function accepted. Then ignore
})
SetInterval:
setInterval()方法,在Window和Worker接口上提供,重复调用一个函数或执行一个代码片段,每次调用之间有固定的时间延迟。
setInterval源链接:点击这里
SetTimeout:
全局setTimeout()方法设置一个计时器,一旦计时器到期,该计时器将执行一个函数或指定的代码段。
setTimeout源链接:点击这里