javascript中php睡眠功能的最佳实践是什么?

时间:2016-04-19 08:30:37

标签: javascript php

例如在php中我们可以在一个循环中放入一个5分钟的休眠函数,在那里可以暂停执行而不是循环返回,我们可以从数据库或其他实例获取新的获取结果如何在javascript中完成这个唯一的方法是设置超时并在其中调用相同的函数, 谢谢。

1 个答案:

答案 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)来电之外。