javascript - 如何正确清除 "setTimeout"JavaScript

标签 javascript html cleartimeout

我有这个简单的页面:

    <!DOCTYPE html>
    <html>
    <body>

    <p>Click the second button to skip the timeout!</p> 


    <button onclick="myStopFunction()">Stop the alert</button>

<script>
var myVar;

spamHi();

function spamHi() {
 console.log("Hi!");
 setTimeout(spamHi,3000);
}

function myStopFunction() {
  clearTimeout(spamHi);
}
</script>

</body>
</html>

函数 spamHi() 打印“Hi!”每 3 秒在控制台中显示一次。 函数 myStopFunction() 应该做的是 清除延迟以使控制台能够打印“Hi!”立即执行,无需等待 3 秒。

我该如何解决这个问题?

最佳答案

您需要获取 setTimeout 调用的返回值,然后将其传递给clearTimeout 函数:

var timeout = setTimeout(spamHi, 3000);

clearTimeout(timeout);

关于javascript - 如何正确清除 "setTimeout"JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58086565/

相关文章:

javascript - 如何阻止用户在 Angular 日期类型输入中输入 future 日期

javascript - 我的 meteor 插入无法与点击事件一起工作,但没有错误可供我调试

javascript - 使用多个标签过滤内容,但一次只允许用户选择一个标签

javascript - 尽管有 clearTimeout,setTimeout 仍然会触发

javascript - CSS 打印内容溢出页脚。如何解决?

html - 压缩表格以使其响应式 css

javascript - Onclick 刷新然后 href 使用相同的点击?

javascript - jQuery 克隆改变的内容

javascript - 如何暂停 JavaScript 中的函数?

Javascript:SetTimeout 和 ClearTimeout 重置。