Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 03.08.2022, 11:26
Профессор
Отправить личное сообщение для NovichokJS Посмотреть профиль Найти все сообщения от NovichokJS
 
Регистрация: 25.04.2022
Сообщений: 159

Таймер из объекта
Почему при выполнении кода таймер не запускается, не идет отчет времени? Где то ошибка?

const timer = {
  secondsPassed: 0,
  minsPassed: 0,
  Id: null,
  startTimer() {
    this.Id = setInterval(() => {

      this.secondsPassed += 1;

      if (this.secondsPassed === 60) {
        this.minsPassed += 1;
        this.secondsPassed = 0;
      }
    }, 1000);
  },

  stopTimer() {
    clearInterval(this.Id);
  },

  getTime() {
    return `${this.minsPassed}:${
      this.secondsPassed < 10 ? '0' + this.secondsPassed : this.secondsPassed
    }`;
  },

  resetTimer() {
    this.minsPassed = 0;
    this.secondsPassed = 0;
  },
};

console.log(timer.startTimer());
console.log(timer.getTime());
Ответить с цитированием
  #2 (permalink)  
Старый 03.08.2022, 11:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Сообщение от NovichokJS
Почему при выполнении кода таймер не запускается, не идет отчет времени?
чем докажешь?
Ответить с цитированием
  #3 (permalink)  
Старый 03.08.2022, 11:42
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от NovichokJS
this.secondsPassed < 10 ? '0' + this.secondsPassed : this.secondsPassed
const n = 1
alert(('' + n).padStart(2, 0))

Ответить с цитированием
  #4 (permalink)  
Старый 03.08.2022, 11:55
Профессор
Отправить личное сообщение для NovichokJS Посмотреть профиль Найти все сообщения от NovichokJS
 
Регистрация: 25.04.2022
Сообщений: 159

Сообщение от рони Посмотреть сообщение
чем докажешь?
запускаю в vscode и получаю:
undefined
0:00
Ответить с цитированием
  #5 (permalink)  
Старый 03.08.2022, 12:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

Сообщение от NovichokJS
запускаю в vscode и получаю:
undefined
0:00
и как это доказывает, что таймер не запустился? )))
Ответить с цитированием
  #6 (permalink)  
Старый 03.08.2022, 12:11
Профессор
Отправить личное сообщение для NovichokJS Посмотреть профиль Найти все сообщения от NovichokJS
 
Регистрация: 25.04.2022
Сообщений: 159

Сообщение от рони Посмотреть сообщение
и как это доказывает, что таймер не запустился? )))
ну как...время не движется. Стоит на нуле. Или я что-то не понимаю? Обьясните пожалуйста . Я ожидаю что таймер должен запуститься и считать минуты с секундами.
Ответить с цитированием
  #7 (permalink)  
Старый 03.08.2022, 12:11
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от NovichokJS
console.log(timer.getTime());
Пробуй так...
setTimeout(console.log, 5000,timer.getTime());
Ответить с цитированием
  #8 (permalink)  
Старый 03.08.2022, 12:12
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,124

Сообщение от NovichokJS
Или я что-то не понимаю?
Ты смотришь сразу и только один раз.
А setInterval() еще не сработал. Он сработает только после прохождения 1 секунды...
Ответить с цитированием
  #9 (permalink)  
Старый 03.08.2022, 12:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,075

NovichokJS,
чтобы что-то изменилось в твоём коде, должна пройти хотя бы секунда.
Ответить с цитированием
  #10 (permalink)  
Старый 03.08.2022, 13:35
Профессор
Отправить личное сообщение для NovichokJS Посмотреть профиль Найти все сообщения от NovichokJS
 
Регистрация: 25.04.2022
Сообщений: 159

Сообщение от ksa Посмотреть сообщение
Пробуй так...
setTimeout(console.log, 5000,timer.getTime());
ну через 5 сек у меня появляется 0:00 и всё. Не идут минуты и секунды. Так и стоит на нуле
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Socket.io Асинхронный таймер monstantin AJAX и COMET 1 04.05.2018 00:48
Таймер на вкладках в Хроме. YNA Opera, Safari и др. 1 28.01.2016 02:43
Обновляемый таймер на javascript smillyhamster Общие вопросы Javascript 1 31.12.2013 10:30
Canvas. Как сделать или вообще нельзя? Вращение рандомизированно изменяемого объекта. Zemsky Общие вопросы Javascript 30 19.12.2013 19:44
Можно ли получить имя экземпляра объекта внутри самого объекта? Ichigeki Общие вопросы Javascript 9 14.11.2008 19:00