在setTimeout完成后执行

Execute after setTimeout finished

本文关键字:执行 setTimeout      更新时间:2023-09-26

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

我有一段代码

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

只要它有效。经过一定次数的迭代,比方说12次,stopperprocess为true,整个过程停止。回来后我想做更多的事情。因此,问题是重写结构的最佳方式是什么?因为我需要超时,但我不知道如何在不使用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);