将第一个函数调用延迟n秒
Delay first function call for n-seconds
我有一个javascript函数,我设置了一个间隔,每30秒执行一次。这是我的代码:
function ping() {
// code ...
}
ping(); // call function when page loads for first time
// call function every 30 seconds
window.setInterval(function(){
ping();
}, 30000);
我想做的是延迟第一次调用(当页面第一次加载时)5秒,然后函数应该每30秒再次执行一次。
我已经尝试了setTimeout
,但似乎不起作用,它立即执行任何想法我做错了什么?
setTimeout(ping(), 5000); // delay first call for 5 secs
// call function every 30 seconds
window.setInterval(function(){
ping();
}, 30000);
我猜你没有等到超时才声明间隔函数。
有几种不同的方法可以做到这一点,所以让我推荐一种:
function ping() {
// code ...
}
setTimeout(function () {
ping(); // call function when page loads for first time
// call function every 30 seconds
window.setInterval(function(){
ping();
}, 30000);
}, 5000);
您正在setTimeout(ping(), 5000);
上立即调用它。将ping()
的结果设置为超时函数。如果您希望超时调用ping
,则执行setTimeout(ping, 5000);
或将其包装在闭包中,就像您第二次所做的那样。
相关文章:
- 是否可以将一个函数输入连接到另一个函数调用的文本
- 在输入字段上有两个函数调用,一个在Blur上,一个不在Angular中
- 如何在Javascript函数调用中循环变量
- 如何在 JS 中调用 2 次或更多次时延迟函数执行
- 如何按顺序调用延迟函数
- 使用promise或setTimeout确定延迟函数的调用顺序
- jQuery deferred:用于延迟函数的返回,直到函数内的异步调用完成+获取返回值
- 节点 js 从客户端和另一个节点模块调用相同的延迟函数
- 延迟函数执行(API 调用)以在时间段内执行 n 次
- 如何在延迟后调用猫头鹰轮播函数
- Javascript AJAX函数调用延迟
- SetTimeout未延迟函数调用
- 如何在考虑页面刷新的固定时间延迟后调用javascript函数
- 将第一个函数调用延迟n秒
- 如何在调用事件后延迟函数的执行
- 函数调用延迟
- 如果在此期间发生其他事件,如何停止调用延迟函数
- jQuery / backbone.js -延迟函数调用
- jQuery-延迟所有用.on声明的函数调用
- 使用Angular在页面加载延迟后调用函数