首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Discord.js等待setTimeout函数完成,然后再允许其再次运行

Discord.js等待setTimeout函数完成,然后再允许其再次运行
EN

Stack Overflow用户
提问于 2021-01-09 02:16:52
回答 1查看 141关注 0票数 0

我试着解决这个问题已经有一段时间了,但是似乎什么都没有起作用。每当有人试图在计时器的1小时内使用命令pqtimer时,我希望忽略它,因为应该只允许用户在计时器结束时激活计时器。

我读过一些关于异步函数的东西,但我不能让它工作,所以我不确定这是否是解决它的正确方法。

很想在这方面得到一些帮助!

代码语言:javascript
运行
复制
if(command === 'pqtimer') {
        message.channel.send('Patreon quest timer started! (1hr)');
        setTimeout(function(){
            message.channel.send('Time for a new quest!');
            message.author.send(`Time for a new quest!`);
        }, 3600000);
    }
EN

Stack Overflow用户

发布于 2021-01-09 02:29:04

setTimeout()返回一个ID。你可以在某个全局状态下记住这个id,并且只有在全局状态下没有timeoutid时才会创建一个新的超时。执行超时回调后,不要忘记将其从全局状态中删除

代码语言:javascript
运行
复制
let myGlobalState = {
  timeout = 0;
}





if (command === 'pqtimer' && !myGlobalState.timeout) {
  message.channel.send(' ... ');
  myGlobalState.timeout = setTimeout(function() {
     ...
     myGlobalState.timeout = 0;
  }, 3600000);
}
票数 0
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65634338

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档