执行javascript/jquery函数一段时间,然后停止
我有两个javascript函数-f1,f2。 我想每2秒钟从f1呼叫f2,我需要这样做10分钟执行javascript/jquery函数一段时间,然后停止,javascript,jquery,Javascript,Jquery,我有两个javascript函数-f1,f2。 我想每2秒钟从f1呼叫f2,我需要这样做10分钟 function f1() { //call f1 in every 2 seconds- for 10 minutes } function f2(){ { } 我如何在javascript/jquery中实现这一点,或者如何在上述场景中使用Settimeout、setInterval。您可以使用Settimeout()和setInterval()这样的组合 10分钟后杀死;10*60
function f1()
{
//call f1 in every 2 seconds- for 10 minutes
}
function f2(){
{
}
我如何在javascript/jquery中实现这一点,或者如何在上述场景中使用Settimeout、setInterval。您可以使用
Settimeout()
和setInterval()
这样的组合
10分钟后杀死;10*60*1000=600000毫秒
var loop2s = setInterval(function(){
f2();
}, 2000);
// Kill after 10 minutes
setTimeout(function(){
clearInterval(loop2s);
},600000);
您可以使用
setTimeout()
和setInterval()
等组合
10分钟后杀死;10*60*1000=600000毫秒
var loop2s = setInterval(function(){
f2();
}, 2000);
// Kill after 10 minutes
setTimeout(function(){
clearInterval(loop2s);
},600000);
您可以使用计数器从函数本身调用f2。 快速示例:
var counter = 0;
function f1()
{
setTimeout(f2, 2000);
}
function f2(){
{
counter++;
if (counter < 59) {
setTimeout(f2, 2000);
}
}
var计数器=0;
函数f1()
{
设置超时(f2,2000);
}
函数f2(){
{
计数器++;
如果(计数器<59){
设置超时(f2,2000);
}
}
您可以使用计数器从函数本身调用f2。
快速示例:
var counter = 0;
function f1()
{
setTimeout(f2, 2000);
}
function f2(){
{
counter++;
if (counter < 59) {
setTimeout(f2, 2000);
}
}
var计数器=0;
函数f1()
{
设置超时(f2,2000);
}
函数f2(){
{
计数器++;
如果(计数器<59){
设置超时(f2,2000);
}
}
有点过头了,但这是一个需要解决的有趣问题,通过返回stop函数而不是使用window.clearInterval(someVar);
函数f1(){
//作为测试,每400ms运行一次f2,持续4秒
var停止=间隔(f2、400、4000);
//stop()是一个可以调用以异步停止计时器的函数
}
功能f2(已用){
log('在'+persed+'ms'处调用f2');
}
f1();
/**
*间歇
*
*每n毫秒重复一次回调函数,直到
*调用timout或stop()函数
*
*@param{Function}cb要执行的回调函数
*@param{Number}间隔之间每隔毫秒
*@param{Number}时间间隔的超时
*
*@return{Function}stop stop函数清除间隔
*/
功能间隔(cb、每隔、超时){
var start=Date.now(),
定时器=空;
计时器=window.setInterval(函数(){
var appead=Date.now()-start;
如果(超时和已用时间>超时){
停止();
}否则{
cb(已过);
}
},每宗);
函数停止(){
窗口清除间隔(计时器);
}
返回站;
}
有点过头了,但这是一个需要解决的有趣问题,通过返回stop函数而不是使用window.clearInterval(someVar);
函数f1(){
//作为测试,每400ms运行一次f2,持续4秒
var停止=间隔(f2、400、4000);
//stop()是一个可以调用以异步停止计时器的函数
}
功能f2(已用){
log('在'+persed+'ms'处调用f2');
}
f1();
/**
*间歇
*
*每n毫秒重复一次回调函数,直到
*调用timout或stop()函数
*
*@param{Function}cb要执行的回调函数
*@param{Number}间隔之间每隔毫秒
*@param{Number}时间间隔的超时
*
*@return{Function}stop stop函数清除间隔
*/
功能间隔(cb、每隔、超时){
var start=Date.now(),
定时器=空;
计时器=window.setInterval(函数(){
var appead=Date.now()-start;
如果(超时和已用时间>超时){
停止();
}否则{
cb(已过);
}
},每宗);
函数停止(){
窗口清除间隔(计时器);
}
返回站;
}