不断检查日期是否过去

时间:2019-04-10 14:06:24

标签: javascript

我想检查“ for loop”中所选日期是否过去。但是,如果我使用“ for循环”,它将停止其他代码的运行。如何不断检查日期是否是过去的日期,而不停止其他代码的运行?

for (var now = new Date();;) {
   if (selectedDate < now) { 
      // some code
   }
}

console.log('1') // code that's not running.

2 个答案:

答案 0 :(得分:2)

JavaScript是完全同步和单线程的。因此,您的代码被“锁定”或卡在您引用的for循环中。

您需要使用setInterval。例如:

// For demonstration purposes.
var selectedDate = new Date();

// The code inside of this function will run every 1 second (or 1,000 milliseconds)
setInterval(function () {
   var now = new Date();
   if (selectedDate < now) { 
      console.log("Selected date is in the past!");
  }
}, 1000);

console.log('1') // This code runs now because JavaScript is not caught executing the for loop.

答案 1 :(得分:0)

许多解决此问题的解决方案。如果您使用RXJS,则可以使用Observable。否则,您可以使用带有箭头功能的简单间隔或简单的功能,并以毫秒为单位定义重复时间间隔:

setInterval(repeatFunc,intervalInMillisecond);