У меня есть несколько таймеров обратного отсчета в моем приложении, и я обновляю эти значения с помощью функции setInterval. Идея следующего блока кода - это цикл всех текущих игр и обратный отсчет времени. У меня есть интервал 1000 мс, но он работает намного быстрее, чем это. Зачем? Когда я открываю несколько окон браузера, чтобы видеть обновления таймера обратного отсчета, я могу заметить, что этот интервал составляет примерно 500 мс.Метеор setinterval слишком быстр
if (Meteor.isClient) {
Meteor.setInterval(
function() {
var going = Games.find({isGoing: true});
var goingFetch = going.fetch();
var goingCount = going.count();
for (i = 0; i < goingCount; i++) {
Games.update(goingFetch[i]._id, {$set: {timeLeft: goingFetch[i].timeLeft - 1}});
}
}
, 1000);
}
Есть ли лучший способ решить эту проблему? У меня может быть 100 игр одновременно, и каждая игра имеет один-много таймеров. Тип таймера может быть обратным или инкрементным, а все таймеры останавливаются. Интервал всегда и во всех случаях 1000 мс.
ОБНОВЛЕНИЕ Я сделал больше тестов и setInterval работает нормально, но у клиентов все еще есть слишком быстрый таймер обратного отсчета.
Я сделал больше тестов и setInterval отлично работает. Похоже, проблема в другом месте. – anttir