@knime

Как получить время до окончания setTimeout ( Node.js )?

Пишу бота в VK. Мне нужно узнать время до окончания запущенного таймера.
Пробовал приравнять таймер к переменной, как это было в документации, ничего не вышло.
Вот примерный кусок кода:
cmd.hear(/^(?:час)$/i, async (message, bot) => {
  if(message.user.timer === true)
        {
        return bot(`Осталось: ${время setTimeout / 60 / 1000} минут.`);
        }
  
    else
      {
        setTimeout(() => {
            message.user.timer = false;
            console.log('Relog');
        }, 3600000);

        message.user.timer = true;
       }
});
  • Вопрос задан
  • 172 просмотра
Пригласить эксперта
Ответы на вопрос 2
WblCHA
@WblCHA
Насколько я знаю, узнать сколько времени осталось до выполнения таймаута нельзя. Хотя бы по той причине что точное время до выполнения он сам не знает, а знает лишь сколько времени ему нельзя выполняться.
Но это если говорить о вытаскивании инфы из таймаута, а так конечно можно:
const timerExecuteTime = Date.now() + 3600000;
Ответ написан
Комментировать
zkrvndm
@zkrvndm
Архитектор решений
Когда создаёте таймер, просто параллельно еще делайте куда-нибудь пометку о времени выполнения:
timer = setTimeout(function() {
    // Ваш код
}, 5000);
start_time = new Date().getTime() + 5000;

Ну или напишите функцию обертку для setTimeout(), которая будет запоминать время за вас.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы