在setTimeout完成后执行

时间:2015-03-20 09:26:48

标签: javascript jquery loops

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

我已经获得了这段代码

var someprogram = function(){ if(stopprocess) return; //do things setTimeout(someprogram, 1000); } setTimeout(someprogram, 1000);

Sofar有效。经过一些迭代后,让我们说12,stopprocess是真的,整个事情都停止了。我想在回归后做更多的事情。所以问题是重写结构的最佳方法是什么呢?因为我需要超时,但我不知道如何在不使用return语句的情况下停止整个事情。有任何想法吗? (我只有一个用于此任务的javascript文件)

2 个答案:

答案 0 :(得分:3)

有很多方法可以做到这一点,就是在函数中编写所有逻辑并执行它。

    var logic = function(){
       //do things 
     }

并在返回

之前执行它
var someprogram = function(){
    if(stopprocess){ 
       logic(); // your code is executed now
       return;
   }

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

答案 1 :(得分:2)

可能这个适合你:

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

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

setTimeout(someprogram, 1000);