首页 > 解决方案 > 如何让事件监听器暂时暂停?

问题描述

client.on('message', message => {
  if (message.content.startsWith("ping")) {
    message.channel.send('Pong!');
  }
});

如何添加冷却时间(不是用户特定的),以便一旦触发此事件,它会休眠 60 秒?

标签: javascriptnode.jsdiscord.js

解决方案


执行操作时,将函数外部的变量设置为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!');
  }
});

推荐阅读