Javascript 不断检查日期是否在过去
我想在“for循环”中检查所选日期是否在过去。但如果我使用“for循环”,它会阻止其他代码运行。我如何不断地检查日期是否在过去,而不停止其他代码的运行Javascript 不断检查日期是否在过去,javascript,Javascript,我想在“for循环”中检查所选日期是否在过去。但如果我使用“for循环”,它会阻止其他代码运行。我如何不断地检查日期是否在过去,而不停止其他代码的运行 for (var now = new Date();;) { if (selectedDate < now) { // some code } } console.log('1') // code that's not running. for(var now=new Date();){ 如果(已选择日期
for (var now = new Date();;) {
if (selectedDate < now) {
// some code
}
}
console.log('1') // code that's not running.
for(var now=new Date();){
如果(已选择日期<现在){
//一些代码
}
}
console.log('1')//未运行的代码。
JavaScript是完全同步和单线程的。因此,您的代码被“锁定”或卡在您所引用的循环的上
您需要使用setInterval
。例如:
//用于演示目的。
var selectedDate=新日期();
//此函数中的代码将每1秒(或1000毫秒)运行一次
setInterval(函数(){
var now=新日期();
如果(已选择日期<现在){
log(“所选日期已过!”);
}
}, 1000);
console.log('1')//现在运行此代码,因为执行for循环时未捕获JavaScript。
JavaScript是完全同步的单线程代码。因此,您的代码被“锁定”或卡在您所引用的循环的上
您需要使用setInterval
。例如:
//用于演示目的。
var selectedDate=新日期();
//此函数中的代码将每1秒(或1000毫秒)运行一次
setInterval(函数(){
var now=新日期();
如果(已选择日期<现在){
log(“所选日期已过!”);
}
}, 1000);
console.log('1')//此代码现在运行,因为执行for循环时没有捕获JavaScript。
解决此问题的许多解决方案。如果使用RXJS,则可以使用可观察的。否则,您可以使用带有箭头函数或简单函数的简单间隔,并以毫秒为单位定义重复时间间隔:
setInterval(repeatFunc,intervalInMillisecond);
解决这个问题的方法很多。如果使用RXJS,则可以使用可观察的。否则,您可以使用带有箭头函数或简单函数的简单间隔,并以毫秒为单位定义重复时间间隔:
setInterval(repeatFunc,intervalInMillisecond);
使用setTimeout
或setInterval
。使用setTimeout
或setInterval
。而不是IF-put-while(true){…},这是第二个条件(“持续检查”),就是它。而不是IF-put-while(true){…},这是第二个条件(“持续检查”),就是它。