@nimayoleynik

Как узнать сколько времени осталось до срабатывания таймера?

var timer = setTimeout(alert('Hello world!'), 32*60*1000);

setInterval(function(){
	var timeout = ;//нужно получить время
	console.log('Timeout через: '+timeout);
}, 1000)
  • Вопрос задан
  • 1043 просмотра
Решения вопроса 1
rockon404
@rockon404
Frontend Developer
Можно так:
var duration = 32 * 60 * 1000;
var step = 1000;
var endsAfter = duration;

var timer = setTimeout(alert, duration, 'Hello world!');

var interval = setInterval(function() {
  endsAfter -= step;
  if (endsAfter <= 0) clearInterval(interval);
  console.log('Timeout через: ', endsAfter);
}, step);

Демо
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
dasha_programmist
@dasha_programmist
ex Software Engineer at Reddit TS/React/GraphQL/Go
По факту никак, потому что setTimeout добавляет задачу в macroTaskQueue и это не означает что она выполнится секунда в секунду. Узнать примерное время - как написали выше: при установке setTimeout запоминать (метку времени+значение таймаута) и из неё вычитать текущую метку времени из setInterval.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы