【发布时间】:2020-04-17 23:03:56
【问题描述】:
我正在构建一个允许用户提供输入的网站,并且我想阻止某个功能在特定时间之前运行。在这种情况下,我希望该时间为 2 秒。我一直在尝试使用 setTimeout 函数来控制延迟,但我一直遇到问题。通过使用'console.log()',我已经能够弄清楚问题是toggleCanRun() 从未被调用过。谁能解释为什么?非常感谢。这是我目前得到的代码
function toggleCanRun () {
canRun = true;
clearTimeout(timer);
};
let timer;
let canRun = true;
function playSound () {
if (canRun === true) {
displayInfo();
canRun = false;
timer = setTimeout(toggleCanRun, 2000);
} else {
clearTimeout(timer);
};
};
【问题讨论】:
-
看起来你想要一个
debounced函数。很多 js helper 库都有 debounce 函数 helper(比如下划线/lodash等) -
这能回答你的问题吗? What does _.debounce do?
-
我已经为这个项目安装了几个其他的库,我正在努力减小大小。 Genhis 给了我一个无需额外库即可工作的答案,因此感谢您的帮助,但我想我会坚持他们的建议
标签: javascript