Javascript setTimeout完成后执行

Javascript setTimeout完成后执行,javascript,jquery,loops,Javascript,Jquery,Loops,可能不是很合适的标题,但问题如下 我有这段代码 var someprogram=function(){ if(stopprocess)返回; //做事 setTimeout(someprogram,1000); } setTimeout(someprogram,1000) 到目前为止,一切正常。经过一定次数的迭代,比如说12次,stopprocess为真,整个过程停止。回来后我想做更多的事情。所以问题是,重写structute的最佳方法是什么?因为我需要超时,但我不知道如何在不使用return语

可能不是很合适的标题,但问题如下

我有这段代码

var someprogram=function(){
if(stopprocess)返回;
//做事
setTimeout(someprogram,1000);
}
setTimeout(someprogram,1000)


到目前为止,一切正常。经过一定次数的迭代,比如说12次,stopprocess为真,整个过程停止。回来后我想做更多的事情。所以问题是,重写structute的最佳方法是什么?因为我需要超时,但我不知道如何在不使用return语句的情况下停止整个过程。有什么想法吗?(这个任务我只有一个javascript文件)

有很多方法可以做到这一点,简单的方法是将所有逻辑写入函数并执行它

    var logic = function(){
       //do things 
     }
并在返回前执行它

var someprogram = function(){
    if(stopprocess){ 
       logic(); // your code is executed now
       return;
   }

    setTimeout(someprogram, 1000);
}
setTimeout(someprogram, 1000);

也许这一款适合你:

var someprogram = function() { 
    if(stopprocess) {
        //do the rest

    } else {
        //do things 
        setTimeout(someprogram, 1000); 
    }
} 

setTimeout(someprogram, 1000);

回调函数作为参数还是只执行简单函数?@user4065758我代表您做+1,但我认为这是Trinimon答案的副本