Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/451.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
执行javascript/jquery函数一段时间,然后停止_Javascript_Jquery - Fatal编程技术网

执行javascript/jquery函数一段时间,然后停止

执行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

我有两个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*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(已过);
}
},每宗);
函数停止(){
窗口清除间隔(计时器);
}
返回站;
}