用户需要调用的Javascript函数

标签 javascript

我是 JavaScript 的初学者。我需要在我的 Web 应用程序中添加一个功能,在这个功能中我添加了一项任务。这个任务依赖于一个定时器,35 秒后它会自动启动。但问题是,如果用户不想等待 35 秒,那么它将在 35 秒之前开始。用户点击开始按钮调用函数,任务开始。

如果用户等待 35 秒,则任务将自动启动。

这是我的功能

setTimeout(
  function hello() {
    console.log('Hello User')
  }, 35000);
<button onclick="hello()">Click me to start</button>

此代码有效,但用户单击开始按钮调用函数。然后在 35 秒后重复自动任务启动。

最佳答案

您可以使用 clearTimeout就像下面的 hello 函数。将 setTimeout 的返回值分配给任何 object。您可以使用 clearTimeout(object)取消超时

同时在 setTimeout 之外定义 hello。由于 setTimeout 接受 callback 函数作为参数,您可以简单地使用 hello 而无需将 () 作为 parametersetTimeout(hello, 5000);。或者您可以定义 setTimeout(function() { hello(); }, 5000)

作为您的评论,如果您想在 10 秒后调用另一个函数,您可以再次使用 setTimeout(nextTask, 10000, 'This is parameter');。我已经展示了如何使用 setTimeout 传递参数。

如果你想为下一个函数调用使用 clearTimeout,那么定义全局变量来保存 setTimeout(nextTask, 10000, 'This is parameter'); 的返回值并使用clearTimeout(timeoutNextTask);。否则不需要它。

在下面试试。

function hello() {
  console.log('Hello User');
  clearTimeout(timeout);
  timeoutNextTask = setTimeout(nextTask, 10000, 'This is parameter');
}

function nextTask(x) {
  clearTimeout(timeoutNextTask);
  console.log(x);
}

var timeoutNextTask;
var timeout = setTimeout(hello, 5000);
<button onclick="hello()">Click me to start</button>

关于用户需要调用的Javascript函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62810036/

相关文章:

javascript - React Native - 如何在 onPress 一项时隐藏数组中的其他项目?

javascript - 一页上有多个倒计时

javascript - 当用户移动并按住鼠标时 Canvas 发出警报

javascript - JQuery - 将 XML 对象反序列化为类类型?

javascript - gulp-useref "additionalStreams"不合并

javascript - 无法在 recordRTC 中记录更高的帧速率

javascript 全局变量作用域

javascript - 独立区域中的 HTML、CSS、JS 不影响整个网站

javascript - 尝试实现滑入式菜单

javascript - 数字在按键时验证