重复定时器功能和逻辑
repeating timer functionality and logic
我正在创建番茄钟计时器 - 间隔应该在第一个完成后以不同的持续时间重复。简化的非工作示例:
var firstDuration=5;
var secondDuration=10;
var timer=setInterval(()=>{
firstDuration--
if (firstDuration<0){
clearInterval(timer) ..
//secondDuration-- dont know how to continue..
实现此类功能的最佳方式是什么?我还计划使用 Date.now() 而不是 -- 。
如果我正确理解了要求,这将满足您的要求。它将有一个计时器每秒关闭一次,直到 20 分钟过去,然后每秒关闭一次,直到 5 分钟过去。届时,它会以 20 分钟倒计时重新开始。
const workDurationSeconds = 20 * 60;
const breakDurationSeconds = 5 * 60;
function startCountdown(session) {
let duration;
if (session === 'work') {
duration = workDurationSeconds;
} else {
duration = breakDurationSeconds;
}
let id = setInterval(() => {
duration--;
if (duration <= 0) {
clearInterval(id);
startCountdown(session === 'work' ? 'break' : 'work');
}
}, 1000);
}
我正在创建番茄钟计时器 - 间隔应该在第一个完成后以不同的持续时间重复。简化的非工作示例:
var firstDuration=5;
var secondDuration=10;
var timer=setInterval(()=>{
firstDuration--
if (firstDuration<0){
clearInterval(timer) ..
//secondDuration-- dont know how to continue..
实现此类功能的最佳方式是什么?我还计划使用 Date.now() 而不是 -- 。
如果我正确理解了要求,这将满足您的要求。它将有一个计时器每秒关闭一次,直到 20 分钟过去,然后每秒关闭一次,直到 5 分钟过去。届时,它会以 20 分钟倒计时重新开始。
const workDurationSeconds = 20 * 60;
const breakDurationSeconds = 5 * 60;
function startCountdown(session) {
let duration;
if (session === 'work') {
duration = workDurationSeconds;
} else {
duration = breakDurationSeconds;
}
let id = setInterval(() => {
duration--;
if (duration <= 0) {
clearInterval(id);
startCountdown(session === 'work' ? 'break' : 'work');
}
}, 1000);
}