У меня вопрос:Javascript setInterval, если оператор не работает должным образом
, если я использую следующий код никогда не будет выполнен if
заявление:
var timer = setInterval(function(){
// the date of new date is ofcourse a date in the future
if (Date.now() == Date.parse(new Date(2014, 1, 13, 13, 4, 0, 0))){
console.log('refresh done');
clearInterval(timer);
}
}, 1);
Но если я изменю ==
к >=
это будет выполняться правильно. Это потому, что Date.now()
изменится так быстро, что изменится до того, как произошло сравнение?
Но 'Date.now()' is * not * '13. 1. 2014 13: 04'. Скорее всего, это похоже на «13.1. 2014 13: 04: 21.165'. Вы не можете сравнить за равенство, если не ожидаете, что данные будут равны :) – Luaan
Да, интервал случается намного реже, чем проверка равенства. Это причина. 'Date.now()' работает в миллисекундах. Http://people.mozilla.org/~jorendorff/es6-draft.html#sec-time-values-and-time-range –
@Luaan Это неправда. Выполните следующий код: 'console.log (Date.now());' это вернет метку времени. @Benjamin Gruenbaum Хорошо, спасибо за ваш ответ. Я уже думал, что это было что-то вроде этого :) – GuyT