例如在php中我们可以在一个循环中放入一个5分钟的休眠函数,在那里可以暂停执行而不是循环返回,我们可以从数据库或其他实例获取新的获取结果如何在javascript中完成这个唯一的方法是设置超时并在其中调用相同的函数, 谢谢。
答案 0 :(得分:0)
正如上面的评论所指出的,javascript是单线程的,所以除非你在自己的函数延迟之后包装你想要执行的代码,否则这是不可能的。
然而,您可以创建某种进度存储系统,以便根据暂停周期跟踪您希望执行不同代码段的阶段,例如:
var stage = 0;
setInterval(function() {
executeStage(++stage); // Iterate stage
}, 300000); // 5 mins
var executeStage = function(stageToExecute) {
// Put any code you want to execute at EVERY stage here
console.log('this code will execute no matter what stage is set');
// Now execute code specific to just this stage
switch (stageToExecute) {
case 1:
// Put stage 1 code here
console.log('Stage 1 executes here');
break;
case 2:
// Put stage 2 code here
console.log('Stage 2 executes here');
break;
// And so on
}
}
以上只是一个想法,它实际上取决于您的用例,在您的问题中没有非常清楚地解释。您还应该记住,第一阶段将在setInterval
过去5分钟后才会执行,因此如果您要执行一个阶段然后等待5分钟,则需要添加对{{{ 1}} executeStage(++stage)
来电之外。