JavaScript: Звонящий таймер
Обновлено: 14 сент., 03:21
505
Студентов
82%
Завершения
Эта практика включает в себя элементы асинхронного программирования (setTimeout), так как bind в основном используется в этом контексте
timer.js
Реализуйте и экспортируйте по умолчанию функцию, которая возвращает объект-таймер. Таймер "заводится" на определенное время и запускается. Каждые 100 миллисекунд он вызывает колбек, передавая туда два параметра: state
со значением working
и elapsedTime
содержащий прошедшее время со старта таймера (в миллисекундах). Когда таймер завершился, то он вызывает тот же колбек с параметром state
и значением finished
.
// Колбек
const cb = ({ state, elapsedTime }) => {
switch (state) {
case 'working':
console.log(`Time elapsed: ${elapsedTime}`);
break;
case 'finished':
console.log(`Timer has finished!`);
}
};
// Создается объект-таймер
const timer = makeTimer(300, cb); // Завели на 300 миллисекунд
timer.start();
// Time elapsed: 100
// Time elapsed: 200
// Time elapsed: 300
// Timer has finished!
Подсказки
- Таймеры
- Для запуска таймера используйте setInterval
- Для остановки clearInterval
- Каждый новый тик не должен никак влиять на другие тики. Данные должны быть изолированы
Для полного доступа к испытанию нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.