@nimayoleynik

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

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

setInterval(function(){
	var timeout = ;//нужно получить время
	console.log('Timeout через: '+timeout);
}, 1000)
  • Вопрос задан
  • 95 просмотров
Решения вопроса 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
full-stack developer (javascript/c#/golang/mssql)
По факту никак, потому что setTimeout добавляет задачу в macroTaskQueue и это не означает что она выполнится секунда в секунду. Узнать примерное время - как написали выше: при установке setTimeout запоминать (метку времени+значение таймаута) и из неё вычитать текущую метку времени из setInterval.
Ответ написан
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы
Biganto Москва
от 130 000 до 130 000 руб.
от 2 500 до 4 000 usd.
HTML Academy Москва
от 85 000 до 100 000 руб.
15 авг. 2018, в 11:49
700 руб./в час
15 авг. 2018, в 11:44
2000 руб./за проект
15 авг. 2018, в 11:01
700 руб./в час