javascript - 如何让事件监听器暂时暂停?
问题描述
client.on('message', message => {
if (message.content.startsWith("ping")) {
message.channel.send('Pong!');
}
});
如何添加冷却时间(不是用户特定的),以便一旦触发此事件,它会休眠 60 秒?
解决方案
执行操作时,将函数外部的变量设置为true
.
如果是 则中止该功能true
。
用于setTimeout
将其设置回false
。
let cooldown = false;
client.on('message', message => {
if (message.content.startsWith("ping")) {
if (cooldown) return;
cooldown = true;
setTimeout(() => { cooldown = false; }, 60000);
message.channel.send('Pong!');
}
});
推荐阅读
- kubernetes - Kubernetes - 将服务的公共 URL 获取到我的 ConfigMap
- vb.net - 在 WebException 中获取 HTTP StatusCode
- azure-devops - 在 VSTS 任务组中是否可以参数化一个复选框
- javascript - 绑定与 html 组件中显示的属性不同的属性
- python - Beautiful-soup find_all 无法为特定链接抓取任何内容
- ssh - 无法通过 ssh 进入 Google-Engine,循环连接
- python - 在python中用零填充.dat文件
- mysql - 将 SQL 内连接自定义转换为 Eloquent Laravel
- sql-server-2008 - 在计算列上使用触发器时从字符串转换日期和/或时间时转换失败
- javascript - 在 Vue 中导入组件