У меня есть немного кода node.js как такового:
var start = Date.now();
setTimeout(function() {
console.log(Date.now() - start);
for (var i = 0; i < 100000; i++) {
}
}, 1000);
setTimeout(function() {
console.log(Date.now() - start);
}, 2000);
Что-то странное происходит, когда я запускаю его на своей машине. Время, которое я получаю, находится между 970 и 980 и где-то между 1970 и 1980. Почему я получаю время, которое раньше, чем время ожидания?
for
— использование подобных конструкций в JS никогда не будет хорошей идеей. В JS нет эквивалента функцииsleep
, и попытки создать аналогичный эффект с помощью таких длительных циклов — полная ерунда, которая почти во всех случаях приведет к непредсказуемым или ненадежным результатам. - person CBroe   schedule 02.09.20141015
и2001
, которые в значительной степени соответствуют срабатыванию двух таймеров. Прямо сейчас я бы сказал, что ваши цифры не воспроизводимы. - person jfriend00   schedule 02.09.2014