我希望不能很快地运行同一个命令两次
I want to not be able to run the same command twice very quickly
所以我在这里有这段代码:
lockskipCommand = (function(_super) {
__extends(lockskipCommand, _super);
function lockskipCommand() {
return lockskipCommand.__super__.constructor.apply(this, arguments);
}
lockskipCommand.prototype.init = function() {
this.command = '/lockskip';
this.parseType = 'exact';
return this.rankPrivelege = 'bouncer';
};
lockskipCommand.prototype.functionality = function() {
data.lockBooth();
new ModerationForceSkipService();
return setTimeout((function() {
return data.unlockBooth();
}), 4500);
};
return lockskipCommand;
})(Command);
我想让它冷却一下,这样它就不能连续快速使用了。我想要这样做的原因是为了防止人们被跳过,因为这就是这段代码用来跳过人们的地方。
我希望这是足够的信息来获得一些帮助。谢谢
您可以使用Underscore的debounce()
方法(将true
作为第三个参数)。
如果你不想把Undercore包括在这个简单的任务中,你可以做…
var debounceFn = function (fn, delay) {
var lastInvocationTime = Date.now();
delay = delay || 0;
return function () {
(Date.now() - delay > lastInvocationTime) && (lastInvocationTime = Date.now()) && fn && fn();;
};
};
jsFiddle。
我需要的是一种不能连续执行命令一次以上的方法。
你可以做一些类似的事情。。。
var onceFn = function (fn) {
var invoked = false;
return function () {
! invoked && (invoked = true) && fn && fn();
};
};
jsFiddle。
相关文章:
- Meteor Router数据函数被调用两次
- 从MySQL数据库中获取输入数据需要两次页面刷新
- Module.start()已激发两次
- Jquery点击事件必须点击两次
- Append元素在运行两次函数后不显示
- 防止双击执行两次jQuery post请求
- 我必须点击两次才能激活任何按钮操作(离子/角度)
- 单击jQuery会激发两次
- 如何避免在树上走两次
- button.单击两次删除附加操作后不工作
- 由于$compile,Javascript(Angular)嵌套指令加载了两次
- 单击元素两次后执行操作
- AngularJs正在阻止链接被点击两次
- 为什么我的路线处理程序会触发两次
- 为什么Highchart在我的rails应用程序中加载了两次?(未捕获的Highcharts错误#16)
- 在列表中至少使用两次随机生成的nr
- 具有层次结构的网格自定义命令正在调用 javascript 函数两次
- 我希望不能很快地运行同一个命令两次
- 简单的警报命令触发两次.没有按钮.没有点击
- 如何检测要删除的字符是零宽度空格并执行两次删除或退格命令?