Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Таймер из объекта (https://javascript.ru/forum/misc/84310-tajjmer-iz-obekta.html)

NovichokJS 03.08.2022 11:26

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

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());

рони 03.08.2022 11:34

Цитата:

Сообщение от NovichokJS
Почему при выполнении кода таймер не запускается, не идет отчет времени?

чем докажешь?

ksa 03.08.2022 11:42

Цитата:

Сообщение от NovichokJS
this.secondsPassed < 10 ? '0' + this.secondsPassed : this.secondsPassed

const n = 1
alert(('' + n).padStart(2, 0))

;)

NovichokJS 03.08.2022 11:55

Цитата:

Сообщение от рони (Сообщение 547083)
чем докажешь?

запускаю в vscode и получаю:
undefined
0:00

рони 03.08.2022 12:08

Цитата:

Сообщение от NovichokJS
запускаю в vscode и получаю:
undefined
0:00

и как это доказывает, что таймер не запустился? )))

NovichokJS 03.08.2022 12:11

Цитата:

Сообщение от рони (Сообщение 547087)
и как это доказывает, что таймер не запустился? )))

ну как...время не движется. Стоит на нуле. Или я что-то не понимаю? Обьясните пожалуйста:( . Я ожидаю что таймер должен запуститься и считать минуты с секундами.

ksa 03.08.2022 12:11

Цитата:

Сообщение от NovichokJS
console.log(timer.getTime());

Пробуй так...
setTimeout(console.log, 5000,timer.getTime());

ksa 03.08.2022 12:12

Цитата:

Сообщение от NovichokJS
Или я что-то не понимаю?

Ты смотришь сразу и только один раз.
А setInterval() еще не сработал. Он сработает только после прохождения 1 секунды...

рони 03.08.2022 12:15

NovichokJS,
чтобы что-то изменилось в твоём коде, должна пройти хотя бы секунда.

NovichokJS 03.08.2022 13:35

Цитата:

Сообщение от ksa (Сообщение 547089)
Пробуй так...
setTimeout(console.log, 5000,timer.getTime());

ну через 5 сек у меня появляется 0:00 и всё. Не идут минуты и секунды. Так и стоит на нуле


Часовой пояс GMT +3, время: 05:03.