Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.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中停止特定时间的循环_Javascript_For Loop_Timer - Fatal编程技术网

在JavaScript中停止特定时间的循环

在JavaScript中停止特定时间的循环,javascript,for-loop,timer,Javascript,For Loop,Timer,我想让循环停止1分钟,一分钟后我想让循环执行下一条指令。我尝试了以下代码,但它不起作用。请帮帮我,我该怎么办 for (j = 0; j < 10; j++) { setTimeout(function(){alert("Hello")}, 3000); $("#counter").text(j); } (j=0;j

我想让循环停止1分钟,一分钟后我想让循环执行下一条指令。我尝试了以下代码,但它不起作用。请帮帮我,我该怎么办

   for (j = 0; j < 10; j++) {
             setTimeout(function(){alert("Hello")}, 3000);
            $("#counter").text(j);
        }
(j=0;j<10;j++)的
{
setTimeout(函数(){alert(“Hello”)},3000);
$(“#计数器”)。文本(j);
}

您可以使用以下伪代码在1分钟后执行代码

var timer = setInterval(function(){
 //your code
 if(//some_condition for breaking interval loop) {
   clearTimeout(timer);
 }
},60000);

在Javascript中不能像这样冻结执行。您必须以不同的方式组织代码。例如:

function startLoop(startIndex) {
    for (var j = startIndex || 0; j < 10; j++) {
        if (/* condition to break the loop */) {
            setTimeout(function () {
                startLoop(j);
            }, 3000);
            break;
        }
        $("#counter").text(j);
    }
}
函数startOOP(startIndex){
对于(var j=startIndex | | 0;j<10;j++){
如果(/*条件中断循环*/){
setTimeout(函数(){
startoop(j);
}, 3000);
打破
}
$(“#计数器”)。文本(j);
}
}
另一种方法:

var end = 10;

function doThings( start ) {
   for( var i = start; i < end; i++) {
       alert(i);
       if( 5 === i ) {
           setTimeout(function(){ doThings(i+1); }, 5000);
           break;
       }
   }
}
function delayedLoop( start, end, body, delay ) {
   for( var i = start; i < end; i++) {
       if( false === body( i ) ) {
           setTimeout(function(){ 
               delayedLoop(i+1, end, body, delay); 
           }, delay);
           break;
       }
   }
}
delayedLoop(0, 10, function( i ){
    alert(i);
    if( i === 5 ) {
        return false;
    }
}, 2000);